summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mods/vzxv/utils.lua15
-rw-r--r--mods/vzxv_itemstacks/container.lua18
-rw-r--r--mods/vzxv_itemstacks/init.lua2
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,
})