digicontrol/filter.lua
2021-01-23 21:27:31 +11:00

47 lines
1.1 KiB
Lua

minetest.register_node("digicontrol:filter", {
description = "Digilines Filter",
inventory_image = "digicontrol_filter.png",
tiles = {
"digicontrol_filter.png",
"digicontrol_bottom.png",
"digicontrol_side_port.png",
"digicontrol_side_port.png",
"digicontrol_side.png",
"digicontrol_side.png"
},
drawtype = "nodebox",
node_box = digicontrol.node_box,
selection_box = digicontrol.selection_box,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = {digicontrol = 1, dig_immediate = 2},
digiline = {
semiconductor = {
rules = function(node, pos, from, channel)
local setchannel = minetest.get_meta(pos):get_string("channel")
if channel ~= setchannel then return {} end
local side = digicontrol.get_side(pos, from, node.param2)
if side == 3 then
return {
digicontrol.get_rule(1, node.param2)
}
else
return {
digicontrol.get_rule(3, node.param2)
}
end
end
},
wire = {
rules = function(node)
return {
digicontrol.get_rule(1, node.param2),
digicontrol.get_rule(3, node.param2)
}
end
}
}
})