From 564bc1179932f5c7b21bc56b4f7aa55e7f121abb Mon Sep 17 00:00:00 2001 From: Joe Julian Date: Thu, 11 Jan 2018 11:13:10 -0800 Subject: [PATCH] Create missing tables After a failure to move the digtron with its metadata, some nodes were broken. This worked around crashes that occurred if the inventory table was missing. --- nodes/node_duplicator.lua | 5 ++++- nodes/node_item_ejector.lua | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nodes/node_duplicator.lua b/nodes/node_duplicator.lua index 7d20a65..4533bae 100644 --- a/nodes/node_duplicator.lua +++ b/nodes/node_duplicator.lua @@ -146,6 +146,9 @@ minetest.register_node("digtron:duplicator", { -- clear inventories of image's nodes for _, node_image in pairs(layout.inventories) do local main_inventory = node_image.meta.inventory.main + if type(main_inventory) ~= "table" then + main_inventory = {} + end for index, _ in pairs(main_inventory) do main_inventory[index] = ItemStack(nil) end @@ -175,4 +178,4 @@ minetest.register_node("digtron:duplicator", { end end, -}) \ No newline at end of file +}) diff --git a/nodes/node_item_ejector.lua b/nodes/node_item_ejector.lua index 6f9c64e..aa09909 100644 --- a/nodes/node_item_ejector.lua +++ b/nodes/node_item_ejector.lua @@ -67,6 +67,9 @@ local function eject_items(pos, node, player, eject_even_without_pipeworks) local source_index = nil local source_stack = nil for _, node_image in pairs(layout.inventories) do + if type(node_image.meta.inventory.main) ~= "table" then + node_image.meta.inventory.main = {} + end for index, item_stack in pairs(node_image.meta.inventory.main) do if item_stack:get_count() > 0 and not filter_items[item_stack:get_name()] then source_node = node_image