Add digiline detector tube (#139)

* Add digiline detector tube

The digiline detector tube outputs an itemstring of every stack
that passes through it on the channel specified in its formspec.

* Don't store digiline detector tube's formspec in a temporary local
This commit is contained in:
electrodude 2016-06-11 20:14:38 -04:00 committed by Auke Kok
parent f76668969e
commit a1ed3acd7a
7 changed files with 51 additions and 1 deletions

View File

@ -10,6 +10,7 @@ pipeworks.enable_pipe_devices = true
pipeworks.enable_redefines = true
pipeworks.enable_mese_tube = true
pipeworks.enable_detector_tube = true
pipeworks.enable_digiline_detector_tube = true
pipeworks.enable_conductor_tube = true
pipeworks.enable_accelerator_tube = true
pipeworks.enable_crossing_tube = true
@ -19,4 +20,4 @@ pipeworks.enable_one_way_tube = true
pipeworks.enable_priority_tube = true
pipeworks.enable_cyclic_mode = true
pipeworks.delete_item_on_clearobject = true
pipeworks.delete_item_on_clearobject = true

View File

@ -67,6 +67,55 @@ if pipeworks.enable_detector_tube then
})
end
if minetest.get_modpath("digilines") and pipeworks.enable_digiline_detector_tube then
pipeworks.register_tube("pipeworks:digiline_detector_tube", {
description = "Digiline Detecting Pneumatic Tube Segment",
inventory_image = "pipeworks_digiline_detector_tube_inv.png",
plain = { "pipeworks_digiline_detector_tube_plain.png" },
node_def = {
tube = {can_go = function(pos, node, velocity, stack)
local meta = minetest.get_meta(pos)
local setchan = meta:get_string("channel")
digiline:receptor_send(pos, digiline.rules.default, setchan, stack:to_string())
return pipeworks.notvel(pipeworks.meseadjlist, velocity)
end},
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8.6,2.2]"..
"field[0.6,0.6;8,1;channel;Channel:;${channel}]"..
"image[0.3,1.3;1,1;pipeworks_digiline_detector_tube_inv.png]"..
"label[1.6,1.2;Digiline Detecting Tube]"
)
end,
on_receive_fields = function(pos, formname, fields, sender)
if fields.channel then
minetest.get_meta(pos):set_string("channel", fields.channel)
end
end,
groups = {},
digiline = {
receptor = {},
effector = {
action = function(pos,node,channel,msg) end
}
},
},
})
minetest.register_craft( {
output = "pipeworks:digiline_detector_tube_1 2",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "digilines:wire_std_00000000", "mesecons_materials:silicon", "digilines:wire_std_00000000" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
},
})
end
if pipeworks.enable_conductor_tube then
pipeworks.register_tube("pipeworks:conductor_tube_off", {
description = "Conducting Pneumatic Tube Segment",

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B