From 143aa0ee0404a05bc0f0a22bacd603df8c0df7f4 Mon Sep 17 00:00:00 2001 From: Novatux Date: Thu, 17 Jan 2013 19:49:27 +0100 Subject: [PATCH] Added detector tube --- textures/pipeworks_detector_tube_end.png | Bin 0 -> 2577 bytes textures/pipeworks_detector_tube_inv.png | Bin 0 -> 1267 bytes textures/pipeworks_detector_tube_noctr.png | Bin 0 -> 1979 bytes textures/pipeworks_detector_tube_plain.png | Bin 0 -> 2583 bytes textures/pipeworks_detector_tube_short.png | Bin 0 -> 1248 bytes tubes.lua | 60 ++++++++++++++++++++- 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 textures/pipeworks_detector_tube_end.png create mode 100644 textures/pipeworks_detector_tube_inv.png create mode 100644 textures/pipeworks_detector_tube_noctr.png create mode 100644 textures/pipeworks_detector_tube_plain.png create mode 100644 textures/pipeworks_detector_tube_short.png diff --git a/textures/pipeworks_detector_tube_end.png b/textures/pipeworks_detector_tube_end.png new file mode 100644 index 0000000000000000000000000000000000000000..e5d7be6f245cc526d3b8c332f00ef9c055eaa78e GIT binary patch literal 2577 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 literal 0 HcmV?d00001 diff --git a/textures/pipeworks_detector_tube_noctr.png b/textures/pipeworks_detector_tube_noctr.png new file mode 100644 index 0000000000000000000000000000000000000000..a654bba94f10928588216af7ecb530142932ff84 GIT binary patch literal 1979 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 KMNUMnLSTY1#Yd_D literal 0 HcmV?d00001 diff --git a/tubes.lua b/tubes.lua index d788493..9789143 100644 --- a/tubes.lua +++ b/tubes.lua @@ -222,9 +222,14 @@ for zp = 0, 1 do for key,value in pairs(special) do if key=="on_construct" or key=="after_dig_node" or key=="after_place_node" then - key=key.."_" + nodedef[key.."_"]=value + elseif key=="groups" then + for group,val in pairs(value) do + nodedef.groups[group]=val + end + else + nodedef[key]=value end - nodedef[key]=value end minetest.register_node(name.."_"..tname, nodedef) @@ -258,6 +263,9 @@ mese_end_textures={"pipeworks_mese_tube_end.png","pipeworks_mese_tube_end.png"," mese_short_texture="pipeworks_mese_tube_short.png" mese_inv_texture="pipeworks_mese_tube_inv.png" +detector_plain_textures={"pipeworks_detector_tube_plain.png","pipeworks_detector_tube_plain.png","pipeworks_detector_tube_plain.png", + "pipeworks_detector_tube_plain.png","pipeworks_detector_tube_plain.png","pipeworks_detector_tube_plain.png"} +detector_inv_texture="pipeworks_detector_tube_inv.png" meseadjlist={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=0,y=1,z=0},{x=0,y=-1,z=0},{x=1,y=0,z=0},{x=-1,y=0,z=0}} @@ -315,3 +323,51 @@ register_tube("pipeworks:mese_tube","Mese pneumatic tube segment",mese_plain_tex return (inv:is_empty("line1") and inv:is_empty("line2") and inv:is_empty("line3") and inv:is_empty("line4") and inv:is_empty("line5") and inv:is_empty("line6")) end}) + + +mesecons_rules={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=1,y=1,z=0},{x=1,y=-1,z=0}, + {x=-1,y=1,z=0},{x=-1,y=-1,z=0},{x=0,y=1,z=1},{x=0,y=-1,z=1},{x=0,y=1,z=-1},{x=0,y=-1,z=-1}} + +register_tube("pipeworks:detector_tube_on","Detector tube segment on (you hacker you)",detector_plain_textures,noctr_textures, + end_textures,short_texture,detector_inv_texture, + {tube={can_go=function(pos,node,velocity,stack) + local meta = minetest.env:get_meta(pos) + local name = minetest.env:get_node(pos).name + local nitems=meta:get_int("nitems")+1 + meta:set_int("nitems", nitems) + minetest.after(0.1,minetest.registered_nodes[name].item_exit,pos) + return meseadjlist + end}, + groups={mesecon=2,not_in_creative_inventory=1}, + drop="pipeworks:detector_tube_off_000000", + mesecons={receptor={state="on", + rules=mesecons_rules}}, + item_exit = function(pos) + local meta = minetest.env:get_meta(pos) + local nitems=meta:get_int("nitems")-1 + local name = minetest.env:get_node(pos).name + if nitems==0 then + minetest.env:set_node(pos,{name=string.gsub(name,"on","off")}) + mesecon:receptor_off(pos,mesecons_rules) + else + meta:set_int("nitems", nitems) + end + end, + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_int("nitems", 1) + local name = minetest.env:get_node(pos).name + minetest.after(0.1,minetest.registered_nodes[name].item_exit,pos) + end}) + +register_tube("pipeworks:detector_tube_off","Detector tube segment",detector_plain_textures,noctr_textures, + end_textures,short_texture,detector_inv_texture, + {tube={can_go=function(pos,node,velocity,stack) + local name = minetest.env:get_node(pos).name + minetest.env:set_node(pos,{name=string.gsub(name,"off","on")}) + mesecon:receptor_on(pos,mesecons_rules) + return meseadjlist + end}, + groups={mesecon=2}, + mesecons={receptor={state="off", + rules=mesecons_rules}}})