forked from mtcontrib/pipeworks
Added detector tube
This commit is contained in:
parent
78d183011e
commit
143aa0ee04
BIN
textures/pipeworks_detector_tube_end.png
Normal file
BIN
textures/pipeworks_detector_tube_end.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/pipeworks_detector_tube_inv.png
Normal file
BIN
textures/pipeworks_detector_tube_inv.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/pipeworks_detector_tube_noctr.png
Normal file
BIN
textures/pipeworks_detector_tube_noctr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
textures/pipeworks_detector_tube_plain.png
Normal file
BIN
textures/pipeworks_detector_tube_plain.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
textures/pipeworks_detector_tube_short.png
Normal file
BIN
textures/pipeworks_detector_tube_short.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
58
tubes.lua
58
tubes.lua
|
@ -222,10 +222,15 @@ for zp = 0, 1 do
|
||||||
|
|
||||||
for key,value in pairs(special) do
|
for key,value in pairs(special) do
|
||||||
if key=="on_construct" or key=="after_dig_node" or key=="after_place_node" then
|
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
|
end
|
||||||
|
else
|
||||||
nodedef[key]=value
|
nodedef[key]=value
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node(name.."_"..tname, nodedef)
|
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_short_texture="pipeworks_mese_tube_short.png"
|
||||||
mese_inv_texture="pipeworks_mese_tube_inv.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}}
|
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
|
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"))
|
inv:is_empty("line4") and inv:is_empty("line5") and inv:is_empty("line6"))
|
||||||
end})
|
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}}})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user