diff options
-rw-r--r-- | mods/vzxv/utils.lua | 15 | ||||
-rw-r--r-- | mods/vzxv_itemstacks/container.lua | 18 | ||||
-rw-r--r-- | mods/vzxv_itemstacks/init.lua | 2 |
3 files changed, 24 insertions, 11 deletions
diff --git a/mods/vzxv/utils.lua b/mods/vzxv/utils.lua index 6a93f33..022c596 100644 --- a/mods/vzxv/utils.lua +++ b/mods/vzxv/utils.lua @@ -40,7 +40,7 @@ function vzxv.round_pos(pos) } end --- wrap metadata +-- wrap metadata (unworking) function vzxv.meta(pos) local meta = minetest.get_meta(pos) local m = meta:to_table() @@ -48,9 +48,20 @@ function vzxv.meta(pos) return m end --- store wrapped metadata +-- store wrapped metadata (unworking) function vzxv.store(data) local meta = getmetatable(data).meta return meta:from_table(data) end +function vzxv.getstack(pos) + local meta = minetest.get_meta(pos) + local stack = meta:get_string("vzxv_stack") + if stack == "" then return false end + return ItemStack(stack) +end + +function vzxv.setstack(pos,stack) + local meta = minetest.get_meta(pos) + return meta:set_string("vzxv_stack",stack:to_string()) +end
\ No newline at end of file diff --git a/mods/vzxv_itemstacks/container.lua b/mods/vzxv_itemstacks/container.lua index 4a6b32f..a3ff770 100644 --- a/mods/vzxv_itemstacks/container.lua +++ b/mods/vzxv_itemstacks/container.lua @@ -8,7 +8,11 @@ local function update_container_entity(entity, stack) collide_with_objects = false, visual = "wielditem", visual_size = {x = 0.4, y = 0.4}, +<<<<<<< HEAD + wield_item = stack:get_name(), +======= wield_item = stack.name, +>>>>>>> 9b13c852c4621f76e206c9a88844e67595dcf3a9 static_save = false, } end @@ -38,14 +42,14 @@ minetest.register_lbm { nodenames = {"group:container"}, run_at_every_load = true, action = function(pos) - local meta = vzxv.meta(pos) + local stack = vzxv.getstack(pos) local entity = get_container_entity(pos) - if meta.stack then + if stack and not stack:is_empty() then if not entity then minetest.add_entity(pos, "vzxv_itemstacks:itemstack") entity = get_container_entity(pos) end - update_container_entity(entity, meta.stack) + update_container_entity(entity, stack) end end, } @@ -64,7 +68,7 @@ function vzxv.is_container(pos) end function vzxv.set_container_items(pos, itemstack) - local pos = vzxv.round_pos(pos) + pos = vzxv.round_pos(pos) local entity = get_container_entity(pos) if itemstack and not entity then @@ -74,12 +78,10 @@ function vzxv.set_container_items(pos, itemstack) remove_container_entity(pos) end - local meta = vzxv.meta(pos) - meta.stack = itemstack - vzxv.store(meta) + vzxv.setstack(pos,itemstack) if entity then - update_container_entity(entity, meta.stack) + update_container_entity(entity, itemstack) end end diff --git a/mods/vzxv_itemstacks/init.lua b/mods/vzxv_itemstacks/init.lua index 73e0adb..ce3791f 100644 --- a/mods/vzxv_itemstacks/init.lua +++ b/mods/vzxv_itemstacks/init.lua @@ -28,7 +28,7 @@ minetest.register_chatcommand("apiate", { params = "", func = function(name, tile) local p = minetest.get_player_by_name(name) - vzxv.drop(p:get_pos(), {name=tile,count=1,wear=0,metadata=""}) + vzxv.drop(p:get_pos(), ItemStack(tile)) return true, "beeoid" end, }) |