summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZefram <zefram@fysh.org>2014-07-15 00:52:33 +0100
committerZefram <zefram@fysh.org>2014-07-15 00:52:33 +0100
commitaee9f7e6d682e91a20958d16c192baa6dce6c2e4 (patch)
treed1dbb0f74a568af97c6a9da177ba05811f8dabd4
parent571d1d45ee6dd4bb4cb635351d7d9d8099dea0e5 (diff)
downloadpipeworks-aee9f7e6d682e91a20958d16c192baa6dce6c2e4.tar
pipeworks-aee9f7e6d682e91a20958d16c192baa6dce6c2e4.tar.gz
pipeworks-aee9f7e6d682e91a20958d16c192baa6dce6c2e4.tar.bz2
pipeworks-aee9f7e6d682e91a20958d16c192baa6dce6c2e4.tar.xz
pipeworks-aee9f7e6d682e91a20958d16c192baa6dce6c2e4.zip
Add trash can
The trash can can be used either manually (via form) or at the end of a pipe. It destroys whatever is placed in it.
-rw-r--r--init.lua1
-rw-r--r--textures/pipeworks_trashcan_bottom.pngbin0 -> 186 bytes
-rw-r--r--textures/pipeworks_trashcan_side.pngbin0 -> 100 bytes
-rw-r--r--trashcan.lua51
4 files changed, 52 insertions, 0 deletions
diff --git a/init.lua b/init.lua
index acf867e..8a6da60 100644
--- 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
index 0000000..a50c789
--- /dev/null
+++ b/textures/pipeworks_trashcan_bottom.png
Binary files differ
diff --git a/textures/pipeworks_trashcan_side.png b/textures/pipeworks_trashcan_side.png
new file mode 100644
index 0000000..7b081bf
--- /dev/null
+++ b/textures/pipeworks_trashcan_side.png
Binary files differ
diff --git a/trashcan.lua b/trashcan.lua
new file mode 100644
index 0000000..880ab59
--- /dev/null
+++ b/trashcan.lua
@@ -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" },
+ },
+})