1 local S
= minetest
.get_translator("trash_can")
2 local F
= minetest
.formspec_escape
6 minetest
.register_node("trash_can:trash_can_wooden",{
7 groups
= {snappy
=1,choppy
=2,oddly_breakable_by_hand
=2},
8 tiles
= {"trash_can_wooden_top.png", "trash_can_wooden_top.png", "trash_can_wooden.png"},
9 description
= S("Trash Can"),
10 _tt_help
= S("Lets you get rid of trash"),
13 is_ground_content
= false,
17 {-0.375000,-0.500000,0.312500,0.375000,0.500000,0.375000},
18 {0.312500,-0.500000,-0.375000,0.375000,0.500000,0.375000},
19 {-0.375000,-0.500000,-0.375000,0.375000,0.500000,-0.312500},
20 {-0.375000,-0.500000,-0.375000,-0.312500,0.500000,0.375000},
21 {-0.312500,-0.500000,-0.312500,0.312500,-0.437500,0.312500},
24 on_construct
= function(pos
)
25 local meta
= minetest
.get_meta(pos
)
26 meta
:set_string("formspec",
28 "button[3,0;2,1;empty;"..F(S("Empty Trash")).."]"..
29 "list[current_name;main;3,1;2,3;]"..
30 "list[current_player;main;0,5;8,4;]"..
32 "background9[18,17;8,9;trash_can_inventory.png;true;18,17,-22,-17]")
33 meta
:set_string("infotext", S("Trash Can"))
34 local inv
= meta
:get_inventory()
35 inv
:set_size("main", 8*4)
37 can_dig
= function(pos
,player
)
38 local meta
= minetest
.get_meta(pos
);
39 local inv
= meta
:get_inventory()
40 return inv
:is_empty("main")
42 on_metadata_inventory_move
= function(pos
, from_list
, from_index
, to_list
, to_index
, count
, player
)
43 minetest
.log("action", player
:get_player_name()..
44 " moves stuff in trash can at "..minetest
.pos_to_string(pos
))
46 on_metadata_inventory_put
= function(pos
, listname
, index
, stack
, player
)
47 minetest
.log("action", player
:get_player_name()..
48 " moves stuff to trash can at "..minetest
.pos_to_string(pos
))
50 on_metadata_inventory_take
= function(pos
, listname
, index
, stack
, player
)
51 minetest
.log("action", player
:get_player_name()..
52 " takes stuff from trash can at "..minetest
.pos_to_string(pos
))
54 on_receive_fields
= function(pos
, formname
, fields
, sender
)
56 local meta
= minetest
.get_meta(pos
)
57 local inv
= meta
:get_inventory()
58 for i
= 1, inv
:get_size("main") do
59 inv
:set_stack("main", i
, nil)
61 local player_name
= sender
:get_player_name()
62 minetest
.sound_play("trash", {to_player
=player_name
, gain
= 1.0}, false)
65 sounds
= hades_sounds
.node_sound_defaults(),
70 minetest
.register_craft({
71 output
= 'trash_can:trash_can_wooden',
73 {'hades_materials:plastic_base', '', 'hades_materials:plastic_base'},
74 {'hades_materials:plastic_base', '', 'hades_materials:plastic_base'},
75 {'hades_materials:plastic_base', 'hades_materials:plastic_base', 'hades_materials:plastic_base'},