Remove bad item entity handling of trashcan
[minetest_hades/hades_revisited.git] / mods / trash_can / init.lua
blobae398dbe97764992734abe83c800ef30dda0e6b8
1 --Node Registration
2 local player_name = {}
3 minetest.register_node("trash_can:trash_can_wooden",{
4 groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
5 tiles = {"trash_can_wooden_top.png", "trash_can_wooden_top.png", "trash_can_wooden.png"},
6 description = "Trash Can",
7 drawtype="nodebox",
8 paramtype = "light",
9 is_ground_content = false,
10 node_box = {
11 type = "fixed",
12 fixed = {
13 {-0.375000,-0.500000,0.312500,0.375000,0.500000,0.375000},
14 {0.312500,-0.500000,-0.375000,0.375000,0.500000,0.375000},
15 {-0.375000,-0.500000,-0.375000,0.375000,0.500000,-0.312500},
16 {-0.375000,-0.500000,-0.375000,-0.312500,0.500000,0.375000},
17 {-0.312500,-0.500000,-0.312500,0.312500,-0.437500,0.312500},
20 on_construct = function(pos)
21 local meta = minetest.get_meta(pos)
22 meta:set_string("formspec",
23 "size[8,9]"..
24 "button[3,0;2,1;empty;Empty Trash]"..
25 "list[current_name;main;3,1;2,3;]"..
26 "list[current_player;main;0,5;8,4;]"..
27 "listring[]"..
28 "background9[18,17;8,9;trash_can_inventory.png;true;18,17,-22,-17]")
29 meta:set_string("infotext", "Trash Can")
30 local inv = meta:get_inventory()
31 inv:set_size("main", 8*4)
32 end,
33 can_dig = function(pos,player)
34 local meta = minetest.get_meta(pos);
35 local inv = meta:get_inventory()
36 return inv:is_empty("main")
37 end,
38 on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
39 minetest.log("action", player:get_player_name()..
40 " moves stuff in trash can at "..minetest.pos_to_string(pos))
41 end,
42 on_metadata_inventory_put = function(pos, listname, index, stack, player)
43 minetest.log("action", player:get_player_name()..
44 " moves stuff to trash can at "..minetest.pos_to_string(pos))
45 end,
46 on_metadata_inventory_take = function(pos, listname, index, stack, player)
47 minetest.log("action", player:get_player_name()..
48 " takes stuff from trash can at "..minetest.pos_to_string(pos))
49 end,
50 on_receive_fields = function(pos, formname, fields, sender)
51 if fields.empty then
52 local meta = minetest.get_meta(pos)
53 local inv = meta:get_inventory()
54 for i = 1, inv:get_size("main") do
55 inv:set_stack("main", i, nil)
56 end
57 minetest.sound_play("trash", {to_player=player_name, gain = 1.0}, false)
58 end
59 end,
60 sounds = hades_sounds.node_sound_defaults(),
63 --Crafting
65 minetest.register_craft({
66 output = 'trash_can:trash_can_wooden',
67 recipe = {
68 {'homedecor:plastic_base', '', 'homedecor:plastic_base'},
69 {'homedecor:plastic_base', '', 'homedecor:plastic_base'},
70 {'homedecor:plastic_base', 'homedecor:plastic_base', 'homedecor:plastic_base'},