Add more exotic traffic lights
* Single-section straight-through green arrow * Solid red and yellow for beacons (use to provide a single-section circular red) * Dual-arrow sections in the left turn extenders for flashing yellow arrow support (3-section arrow signal faces retain their existing layout from interim approval 17)master
parent
2fee00a047
commit
ca83b3e501
|
@ -148,7 +148,7 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
|
||||||
elseif name:find("beacon_hybrid") then
|
elseif name:find("beacon_hybrid") then
|
||||||
streets.tlSwitch(pos,"streets:beacon_hybrid_red")
|
streets.tlSwitch(pos,"streets:beacon_hybrid_red")
|
||||||
elseif name:find("beacon") then
|
elseif name:find("beacon") then
|
||||||
--Not Supported
|
streets.tlSwitch(pos,"streets:beacon_red")
|
||||||
else
|
else
|
||||||
streets.tlSwitch(pos,"streets:trafficlight_top_red")
|
streets.tlSwitch(pos,"streets:trafficlight_top_red")
|
||||||
end
|
end
|
||||||
|
@ -174,9 +174,9 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
|
||||||
if name:find("pedlight") then
|
if name:find("pedlight") then
|
||||||
streets.tlSwitch(pos,"streets:pedlight_top_flashingdontwalk")
|
streets.tlSwitch(pos,"streets:pedlight_top_flashingdontwalk")
|
||||||
elseif name:find("extender_left") then
|
elseif name:find("extender_left") then
|
||||||
streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_off")
|
streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_flashyellow")
|
||||||
elseif name:find("extender_right") then
|
elseif name:find("extender_right") then
|
||||||
streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_off")
|
streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_flashyellow")
|
||||||
elseif name:find("left") then
|
elseif name:find("left") then
|
||||||
streets.tlSwitch(pos,"streets:trafficlight_top_left_warn")
|
streets.tlSwitch(pos,"streets:trafficlight_top_left_warn")
|
||||||
elseif name:find("right") then
|
elseif name:find("right") then
|
||||||
|
@ -202,7 +202,7 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
|
||||||
elseif name:find("beacon_hybrid") then
|
elseif name:find("beacon_hybrid") then
|
||||||
streets.tlSwitch(pos,"streets:beacon_hybrid_yellow")
|
streets.tlSwitch(pos,"streets:beacon_hybrid_yellow")
|
||||||
elseif name:find("beacon") then
|
elseif name:find("beacon") then
|
||||||
--Not Supported
|
streets.tlSwitch(pos,"streets:beacon_yellow")
|
||||||
else
|
else
|
||||||
streets.tlSwitch(pos,"streets:trafficlight_top_yellow")
|
streets.tlSwitch(pos,"streets:trafficlight_top_yellow")
|
||||||
end
|
end
|
||||||
|
@ -465,6 +465,74 @@ minetest.register_node(":streets:beacon_off",{
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":streets:beacon_red",{
|
||||||
|
drop = "streets:beacon_off",
|
||||||
|
drawtype="nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = streets.bBox
|
||||||
|
},
|
||||||
|
tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_b_red.png"},
|
||||||
|
digiline = {
|
||||||
|
receptor = {},
|
||||||
|
wire = {rules=streets.tlDigilineRules},
|
||||||
|
effector = {
|
||||||
|
action = function(pos, node, channel, msg)
|
||||||
|
streets.on_digiline_receive(pos, node, channel, msg)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", "field[channel;Channel;${channel}]")
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if (fields.channel) then
|
||||||
|
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||||
|
minetest.get_meta(pos):set_string("state", "Off")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":streets:beacon_yellow",{
|
||||||
|
drop = "streets:beacon_off",
|
||||||
|
drawtype="nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = streets.bBox
|
||||||
|
},
|
||||||
|
tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_yellow.png"},
|
||||||
|
digiline = {
|
||||||
|
receptor = {},
|
||||||
|
wire = {rules=streets.tlDigilineRules},
|
||||||
|
effector = {
|
||||||
|
action = function(pos, node, channel, msg)
|
||||||
|
streets.on_digiline_receive(pos, node, channel, msg)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", "field[channel;Channel;${channel}]")
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if (fields.channel) then
|
||||||
|
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||||
|
minetest.get_meta(pos):set_string("state", "Off")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_node(":streets:beacon_flashred",{
|
minetest.register_node(":streets:beacon_flashred",{
|
||||||
drop = "streets:beacon_off",
|
drop = "streets:beacon_off",
|
||||||
drawtype="nodebox",
|
drawtype="nodebox",
|
||||||
|
@ -609,6 +677,44 @@ minetest.register_node(":streets:trafficlight_top_extender_left_yellow",{
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":streets:trafficlight_top_extender_left_flashyellow",{
|
||||||
|
drop = "streets:trafficlight_top_extender_left_off",
|
||||||
|
description = streets.S("Traffic Light Left-Turn Module"),
|
||||||
|
drawtype="nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = streets.tleBox
|
||||||
|
},
|
||||||
|
tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
|
||||||
|
name="streets_tl_left_warn.png",
|
||||||
|
animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
|
||||||
|
}},
|
||||||
|
digiline = {
|
||||||
|
receptor = {},
|
||||||
|
wire = {rules=streets.tlDigilineRules},
|
||||||
|
effector = {
|
||||||
|
action = function(pos, node, channel, msg)
|
||||||
|
streets.on_digiline_receive(pos, node, channel, msg)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", "field[channel;Channel;${channel}]")
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if (fields.channel) then
|
||||||
|
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||||
|
minetest.get_meta(pos):set_string("state", "Off")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_node(":streets:trafficlight_top_extender_left_green",{
|
minetest.register_node(":streets:trafficlight_top_extender_left_green",{
|
||||||
drop = "streets:trafficlight_top_extender_left_off",
|
drop = "streets:trafficlight_top_extender_left_off",
|
||||||
description = streets.S("Traffic Light Left-Turn Module"),
|
description = streets.S("Traffic Light Left-Turn Module"),
|
||||||
|
@ -714,6 +820,44 @@ minetest.register_node(":streets:trafficlight_top_extender_right_yellow",{
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":streets:trafficlight_top_extender_right_flashyellow",{
|
||||||
|
drop = "streets:trafficlight_top_extender_right_off",
|
||||||
|
description = streets.S("Traffic Light Right-Turn Module"),
|
||||||
|
drawtype="nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = streets.tleBox
|
||||||
|
},
|
||||||
|
tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
|
||||||
|
name="streets_tl_right_warn.png",
|
||||||
|
animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
|
||||||
|
}},
|
||||||
|
digiline = {
|
||||||
|
receptor = {},
|
||||||
|
wire = {rules=streets.tlDigilineRules},
|
||||||
|
effector = {
|
||||||
|
action = function(pos, node, channel, msg)
|
||||||
|
streets.on_digiline_receive(pos, node, channel, msg)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", "field[channel;Channel;${channel}]")
|
||||||
|
end,
|
||||||
|
on_receive_fields = function(pos, formname, fields, sender)
|
||||||
|
if (fields.channel) then
|
||||||
|
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||||
|
minetest.get_meta(pos):set_string("state", "Off")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_node(":streets:trafficlight_top_extender_right_green",{
|
minetest.register_node(":streets:trafficlight_top_extender_right_green",{
|
||||||
drop = "streets:trafficlight_top_extender_left_off",
|
drop = "streets:trafficlight_top_extender_left_off",
|
||||||
description = streets.S("Traffic Light Right-Turn Module"),
|
description = streets.S("Traffic Light Right-Turn Module"),
|
||||||
|
@ -1025,6 +1169,22 @@ for _,i in pairs({"","_left","_right"}) do
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.register_node(":streets:green_arrow",{
|
||||||
|
description = "Straight-through green arrow",
|
||||||
|
drawtype="nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky = 1, level = 2},
|
||||||
|
inventory_image = "streets_trafficlight_inv_greenarrow.png",
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = streets.bBox
|
||||||
|
},
|
||||||
|
tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_straight_green.png"}
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "streets:trafficlight_top_off",
|
output = "streets:trafficlight_top_off",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -1095,6 +1255,15 @@ minetest.register_craft({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "streets:green_arrow",
|
||||||
|
recipe = {
|
||||||
|
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "dye:green", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "streets:digiline_distributor",
|
output = "streets:digiline_distributor",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 847 B |
Binary file not shown.
After Width: | Height: | Size: 938 B |
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Loading…
Reference in New Issue