Chests: Revert inventory name
authortenplus1 <tenplus1@users.noreply.github.com>
Mon, 8 May 2017 11:47:53 +0000 (12:47 +0100)
committerparamat <mat.gregory@virginmedia.com>
Mon, 15 May 2017 12:47:03 +0000 (13:47 +0100)
Revert the new 'default:game' inventory back to the old 'main' and use the
lbm to restore the contents of the chest.
Change the name of the conversion LBM to ensure it is run again on already
converted chests.

mods/default/nodes.lua

index 76e88afd03a359ee06d6f4fc25f1828929994fc5..7fa8d2cae6894802632db4a81a7d2c698c006c26 100644 (file)
@@ -1773,10 +1773,10 @@ local function get_chest_formspec(pos)
                default.gui_bg ..
                default.gui_bg_img ..
                default.gui_slots ..
-               "list[nodemeta:" .. spos .. ";default:chest;0,0.3;8,4;]" ..
+               "list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" ..
                "list[current_player;main;0,4.85;8,1;]" ..
                "list[current_player;main;0,6.08;8,3;8]" ..
-               "listring[nodemeta:" .. spos .. ";default:chest]" ..
+               "listring[nodemeta:" .. spos .. ";main]" ..
                "listring[current_player;main]" ..
                default.get_hotbar_bg(0,4.85)
        return formspec
@@ -1842,7 +1842,7 @@ function default.register_chest(name, d)
                        meta:set_string("infotext", "Locked Chest")
                        meta:set_string("owner", "")
                        local inv = meta:get_inventory()
-                       inv:set_size("default:chest", 8*4)
+                       inv:set_size("main", 8*4)
                end
                def.after_place_node = function(pos, placer)
                        local meta = minetest.get_meta(pos)
@@ -1853,7 +1853,7 @@ function default.register_chest(name, d)
                def.can_dig = function(pos,player)
                        local meta = minetest.get_meta(pos);
                        local inv = meta:get_inventory()
-                       return inv:is_empty("default:chest") and
+                       return inv:is_empty("main") and
                                        default.can_interact_with_node(player, pos)
                end
                def.allow_metadata_inventory_move = function(pos, from_list, from_index,
@@ -1939,12 +1939,12 @@ function default.register_chest(name, d)
                        local meta = minetest.get_meta(pos)
                        meta:set_string("infotext", "Chest")
                        local inv = meta:get_inventory()
-                       inv:set_size("default:chest", 8*4)
+                       inv:set_size("main", 8*4)
                end
                def.can_dig = function(pos,player)
                        local meta = minetest.get_meta(pos);
                        local inv = meta:get_inventory()
-                       return inv:is_empty("default:chest")
+                       return inv:is_empty("main")
                end
                def.on_rightclick = function(pos, node, clicker)
                        minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos,
@@ -2007,16 +2007,18 @@ function default.register_chest(name, d)
        -- convert old chests to this new variant
        minetest.register_lbm({
                label = "update chests to opening chests",
-               name = "default:upgrade_" .. name,
+               name = "default:upgrade_" .. name .. "_v2",
                nodenames = {"default:" .. name},
                action = function(pos, node)
                        local meta = minetest.get_meta(pos)
                        meta:set_string("formspec", nil)
                        local inv = meta:get_inventory()
-                       local list = inv:get_list("main")
-                       inv:set_list("main", nil)
-                       inv:set_size("default:chest", 8*4)
-                       inv:set_list("default:chest", list)
+                       local list = inv:get_list("default:chest")
+                       if list then
+                               inv:set_size("main", 8*4)
+                               inv:set_list("main", list)
+                               inv:set_list("default:chest", nil)
+                       end
                end
        })
 end