Add trash can
authorZefram <zefram@fysh.org>
Mon, 14 Jul 2014 23:52:33 +0000 (00:52 +0100)
committerZefram <zefram@fysh.org>
Mon, 14 Jul 2014 23:52:33 +0000 (00:52 +0100)
The trash can can be used either manually (via form) or at the end of
a pipe.  It destroys whatever is placed in it.

init.lua
textures/pipeworks_trashcan_bottom.png [new file with mode: 0644]
textures/pipeworks_trashcan_side.png [new file with mode: 0644]
trashcan.lua [new file with mode: 0644]

index acf867eaf75dc7e5f13128413f7b95a795ac962d..8a6da604d3fdb89fdbfbbe2d4538177948533604 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -113,6 +113,7 @@ dofile(pipeworks.modpath.."/item_transport.lua")
 dofile(pipeworks.modpath.."/flowing_logic.lua")
 dofile(pipeworks.modpath.."/crafts.lua")
 dofile(pipeworks.modpath.."/tubes.lua")
+dofile(pipeworks.modpath.."/trashcan.lua")
 
 if pipeworks.enable_pipes then dofile(pipeworks.modpath.."/pipes.lua") end
 if pipeworks.enable_teleport_tube then dofile(pipeworks.modpath.."/teleport_tube.lua") end
diff --git a/textures/pipeworks_trashcan_bottom.png b/textures/pipeworks_trashcan_bottom.png
new file mode 100644 (file)
index 0000000..a50c789
Binary files /dev/null and b/textures/pipeworks_trashcan_bottom.png differ
diff --git a/textures/pipeworks_trashcan_side.png b/textures/pipeworks_trashcan_side.png
new file mode 100644 (file)
index 0000000..7b081bf
Binary files /dev/null and b/textures/pipeworks_trashcan_side.png differ
diff --git a/trashcan.lua b/trashcan.lua
new file mode 100644 (file)
index 0000000..880ab59
--- /dev/null
@@ -0,0 +1,51 @@
+minetest.register_node("pipeworks:trashcan", {
+       description = "Trash Can", 
+       drawtype = "normal", 
+       tiles = {
+               "pipeworks_trashcan_bottom.png",
+               "pipeworks_trashcan_bottom.png",
+               "pipeworks_trashcan_side.png",
+               "pipeworks_trashcan_side.png",
+               "pipeworks_trashcan_side.png",
+               "pipeworks_trashcan_side.png",
+       }, 
+       groups = { snappy = 3, tubedevice = 1, tubedevice_receiver = 1 }, 
+       tube = {
+               insert_object = function(pos, node, stack, direction)
+                       return ItemStack("")
+               end, 
+               can_insert = function(pos, node, stack, direction)
+                       return true
+               end, 
+               connect_sides = { left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1 },
+       }, 
+       on_construct = function(pos)
+               local meta = minetest.get_meta(pos)
+               meta:set_string("formspec",
+                               "size[8,7]"..
+                               "item_image[0,0;1,1;pipeworks:trashcan]"..
+                               "label[1,0;Trash Can]"..
+                               "list[current_name;trash;3.5,1;1,1;]"..
+                               "list[current_player;main;0,3;8,4;]")
+               meta:set_string("infotext", "Trash Can")
+               meta:get_inventory():set_size("trash", 1)
+       end, 
+       after_place_node = function(pos)
+               pipeworks.scan_for_tube_objects(pos)
+       end,
+       after_dig_node = function(pos)
+               pipeworks.scan_for_tube_objects(pos)
+       end,
+       on_metadata_inventory_put = function(pos, listname, index, stack, player)
+               minetest.get_meta(pos):get_inventory():set_stack(listname, index, ItemStack(""))
+       end,
+})
+
+minetest.register_craft({
+       output = "pipeworks:trashcan",
+       recipe = {
+               { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+               { "default:steel_ingot", "", "default:steel_ingot" },
+               { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+       },
+})