summaryrefslogtreecommitdiff
path: root/mods/vzxv_itemstacks/loose.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mods/vzxv_itemstacks/loose.lua')
-rw-r--r--mods/vzxv_itemstacks/loose.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/mods/vzxv_itemstacks/loose.lua b/mods/vzxv_itemstacks/loose.lua
new file mode 100644
index 0000000..58952f8
--- /dev/null
+++ b/mods/vzxv_itemstacks/loose.lua
@@ -0,0 +1,33 @@
+minetest.register_entity("vzxv_itemstacks:loose_itemstack",{
+ initial_properties = {
+ physical = true,
+ pointable = false,
+ visual = "wielditem",
+ visual_size = {x = 0.4, y = 0.4},
+ },
+ on_activate = function(self,staticdata)
+ local luaent = self
+ staticdata = staticdata~="" and staticdata or "vzxv:apioform"
+ luaent._stack = staticdata
+ self.object:set_properties {
+ wield_item=ItemStack(luaent._stack):get_name()
+ }
+ end,
+ on_step = function(self,dt)
+ local npos = vzxv.round_pos(self.object:get_pos())
+ npos.y = npos.y - 1
+ if minetest.get_node(npos).name ~= "air" then
+ npos.y = npos.y + 1
+ if minetest.get_node(npos).name == "air" then
+ vzxv.drop(npos, ItemStack(self._stack))
+ self.object:remove()
+ end
+ end
+ end,
+ get_staticdata = function(self)
+ local luaent = self
+ return luaent._stack
+ end
+})
+
+vzxv.register_gravity("vzxv_itemstacks:loose_itemstack") \ No newline at end of file