From a6ffd1f3c6024f4f0736d17bd027f1dc95e092e1 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 19 Aug 2015 17:37:18 +0200 Subject: [PATCH] simplify trash can code and limit the inventory size to the displayed one --- homedecor/trash_cans.lua | 43 ++++++++++------------------------------ 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/homedecor/trash_cans.lua b/homedecor/trash_cans.lua index a3049109..a7aa5d3c 100644 --- a/homedecor/trash_cans.lua +++ b/homedecor/trash_cans.lua @@ -23,46 +23,25 @@ homedecor.register("trash_can_green_open", { drawtype = "mesh", mesh = "homedecor_trash_can_green_open.obj", tiles = { "homedecor_pool_table_baize.png" }, - groups = {snappy=3, not_in_creative_inventory=1}, + groups = {snappy=3, not_in_creative_inventory=1}, selection_box = tg_cbox, collision_box = tg_cbox, drop = "homedecor:trash_can_green", on_punch = function(pos, node, puncher, pointed_thing) minetest.set_node(pos, {name = "homedecor:trash_can_green", param2 = node.param2}) end, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", - "size[8,9]".. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. - "button[2.5,3.8;3,1;empty;Empty Trash]".. - "list[current_name;main;2.5,0.5;3,3;]".. - "list[current_player;main;0,5;8,4;]") - meta:set_string("infotext", "Trash Can") - local inv = meta:get_inventory() - inv:set_size("main", 8*4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - return inv:is_empty("main") - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in trash can at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff in trash can at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from trash can at "..minetest.pos_to_string(pos)) - end, + infotext="Trash Can", + inventory= { + size = 9, + formspec = "size[8,9]" .. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. + "button[2.5,3.8;3,1;empty;Empty Trash]".. + "list[context;main;2.5,0.5;3,3;]".. + "list[current_player;main;0,5;8,4;]", + }, on_receive_fields = function(pos, formname, fields, sender) if fields.empty then - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - inv:set_list("main", {}) + local meta = minetest.get_meta(pos) + meta:get_inventory():set_list("main", {}) minetest.sound_play("homedecor_trash_all", {to_player=sender:get_player_name(), gain = 1.0}) end end