summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2018-08-12 16:03:26 -0500
committercheapie <no-email-for-you@example.com>2018-08-12 16:03:26 -0500
commit78b0d22908f49edb27aea9d2557d8abaf7571439 (patch)
treeaf73799263d220201a46b42de70bf58ecdeddf5e
parentd7343483c4ba50fa14e67aad20f1d158f3a60e9c (diff)
downloadroads-78b0d22908f49edb27aea9d2557d8abaf7571439.tar
roads-78b0d22908f49edb27aea9d2557d8abaf7571439.tar.gz
roads-78b0d22908f49edb27aea9d2557d8abaf7571439.tar.bz2
roads-78b0d22908f49edb27aea9d2557d8abaf7571439.tar.xz
roads-78b0d22908f49edb27aea9d2557d8abaf7571439.zip
Traffic light improvements and fixes
-rw-r--r--trafficlight/init.lua395
-rw-r--r--trafficlight/textures/streets_pl_flashingwalk.pngbin0 -> 2701 bytes
-rw-r--r--trafficlight/textures/streets_tl_flashgreen.pngbin0 -> 2975 bytes
-rw-r--r--trafficlight/textures/streets_tl_flashred_alt.pngbin0 -> 2795 bytes
-rw-r--r--trafficlight/textures/streets_tl_left_flashgreen.pngbin0 -> 2886 bytes
-rw-r--r--trafficlight/textures/streets_tl_left_flashred_alt.pngbin0 -> 2914 bytes
-rw-r--r--trafficlight/textures/streets_tl_left_redyellow.pngbin0 -> 3142 bytes
-rw-r--r--trafficlight/textures/streets_tl_left_warn_alt.pngbin0 -> 2933 bytes
-rw-r--r--trafficlight/textures/streets_tl_redyellow.pngbin0 -> 3178 bytes
-rw-r--r--trafficlight/textures/streets_tl_right_flashgreen.pngbin0 -> 2862 bytes
-rw-r--r--trafficlight/textures/streets_tl_right_flashred_alt.pngbin0 -> 2890 bytes
-rw-r--r--trafficlight/textures/streets_tl_right_redyellow.pngbin0 -> 3162 bytes
-rw-r--r--trafficlight/textures/streets_tl_right_warn_alt.pngbin0 -> 3009 bytes
-rw-r--r--trafficlight/textures/streets_tl_warn_alt.pngbin0 -> 2929 bytes
-rw-r--r--trafficlight/textures/streets_tle_left_flashgreen.pngbin0 -> 3004 bytes
-rw-r--r--trafficlight/textures/streets_tle_right_flashgreen.pngbin0 -> 2961 bytes
16 files changed, 365 insertions, 30 deletions
diff --git a/trafficlight/init.lua b/trafficlight/init.lua
index 4a1e24d..f099128 100644
--- a/trafficlight/init.lua
+++ b/trafficlight/init.lua
@@ -135,6 +135,7 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
end
-- Tl states
local name = minetest.get_node(pos).name
+ local althalfhz = minetest.get_node(pos).param2 % 2 == 1
if msg == "OFF" then
if name:find("pedlight") then
if name == "streets:pedlight_top_flashingdontwalk" then
@@ -181,66 +182,82 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
else
streets.tlSwitch(pos,"streets:trafficlight_top_green")
end
- elseif msg == "RED" then
+ elseif msg == "FLASHGREEN" then
if name:find("pedlight") then
if name == "streets:pedlight_top_flashingdontwalk" then
- ped_on_flash_end(pos,true)
+ ped_on_flash_end(pos,false)
end
- streets.tlSwitch(pos,"streets:pedlight_top_dontwalk")
+ streets.tlSwitch(pos,"streets:pedlight_top_flashingwalk")
elseif name:find("extender_left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_off")
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_flashgreen")
elseif name:find("extender_right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_off")
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_flashgreen")
elseif name:find("left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_left_red")
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_flashgreen")
elseif name:find("right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_right_red")
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_flashgreen")
elseif name:find("beacon_hybrid") then
- streets.tlSwitch(pos,"streets:beacon_hybrid_red")
+ --Not Supported
elseif name:find("beacon") then
- streets.tlSwitch(pos,"streets:beacon_red")
+ --Not Supported
elseif name:find("rrfb") then
--Not Supported
else
- streets.tlSwitch(pos,"streets:trafficlight_top_red")
+ streets.tlSwitch(pos,"streets:trafficlight_top_flashgreen")
end
- elseif msg == "WARN" then
+ elseif msg == "RED" then
if name:find("pedlight") then
- if name ~= "streets:pedlight_top_flashingdontwalk" then
- ped_on_flash_start(pos)
+ if name == "streets:pedlight_top_flashingdontwalk" then
+ ped_on_flash_end(pos,true)
end
- streets.tlSwitch(pos,"streets:pedlight_top_flashingdontwalk")
+ streets.tlSwitch(pos,"streets:pedlight_top_dontwalk")
elseif name:find("extender_left") then
streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_off")
elseif name:find("extender_right") then
streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_off")
elseif name:find("left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_left_warn")
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_red")
elseif name:find("right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_right_warn")
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_red")
elseif name:find("beacon_hybrid") then
- streets.tlSwitch(pos,"streets:beacon_hybrid_flashyellow")
+ streets.tlSwitch(pos,"streets:beacon_hybrid_red")
elseif name:find("beacon") then
- streets.tlSwitch(pos,"streets:beacon_flashyellow")
+ streets.tlSwitch(pos,"streets:beacon_red")
elseif name:find("rrfb") then
- streets.tlSwitch(pos,"streets:trafficlight_rrfb_on")
+ --Not Supported
else
- streets.tlSwitch(pos,"streets:trafficlight_top_warn")
+ streets.tlSwitch(pos,"streets:trafficlight_top_red")
end
- elseif msg == "FLASHYELLOW" then
+ elseif msg == "WARN" or msg == "FLASHYELLOW" then
if name:find("pedlight") then
if name ~= "streets:pedlight_top_flashingdontwalk" then
ped_on_flash_start(pos)
end
streets.tlSwitch(pos,"streets:pedlight_top_flashingdontwalk")
elseif name:find("extender_left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_flashyellow")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_flashyellow_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_left_flashyellow")
+ end
elseif name:find("extender_right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_flashyellow")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_flashyellow_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_flashyellow")
+ end
elseif name:find("left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_left_warn")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_warn_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_warn")
+ end
elseif name:find("right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_right_warn")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_warn_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_warn")
+ end
elseif name:find("beacon_hybrid") then
streets.tlSwitch(pos,"streets:beacon_hybrid_flashyellow")
elseif name:find("beacon") then
@@ -248,7 +265,11 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
elseif name:find("rrfb") then
streets.tlSwitch(pos,"streets:trafficlight_rrfb_on")
else
- streets.tlSwitch(pos,"streets:trafficlight_top_warn")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_warn_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_warn")
+ end
end
elseif msg == "YELLOW" then
if name:find("pedlight") then
@@ -273,6 +294,26 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
else
streets.tlSwitch(pos,"streets:trafficlight_top_yellow")
end
+ elseif msg == "REDYELLOW" then
+ if name:find("pedlight") then
+ --Not Supported
+ elseif name:find("extender_left") then
+ --Not Supported
+ elseif name:find("extender_right") then
+ --Not Supported
+ elseif name:find("left") then
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_redyellow")
+ elseif name:find("right") then
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_redyellow")
+ elseif name:find("beacon_hybrid") then
+ --Not Supported
+ elseif name:find("beacon") then
+ --Not Supported
+ elseif name:find("rrfb") then
+ --Not Supported
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_redyellow")
+ end
elseif msg == "FLASHRED" then
if name:find("pedlight") then
if name ~= "streets:pedlight_top_flashingdontwalk" then
@@ -284,9 +325,17 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
elseif name:find("extender_right") then
streets.tlSwitch(pos,"streets:trafficlight_top_extender_right_off")
elseif name:find("left") then
- streets.tlSwitch(pos,"streets:trafficlight_top_left_flashred")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_flashred_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_left_flashred")
+ end
elseif name:find("right") then
- streets.tlSwitch(pos,"streets:trafficlight_top_right_flashred")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_flashred_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_right_flashred")
+ end
elseif name:find("beacon_hybrid") then
streets.tlSwitch(pos,"streets:beacon_hybrid_flashred")
elseif name:find("beacon") then
@@ -294,7 +343,11 @@ streets.on_digiline_receive = function(pos, node, channel, msg)
elseif name:find("rrfb") then
--Not Supported
else
- streets.tlSwitch(pos,"streets:trafficlight_top_flashred")
+ if althalfhz then
+ streets.tlSwitch(pos,"streets:trafficlight_top_flashred_alt")
+ else
+ streets.tlSwitch(pos,"streets:trafficlight_top_flashred")
+ end
end
end
end
@@ -787,6 +840,82 @@ minetest.register_node(":streets:trafficlight_top_extender_left_flashyellow",{
end,
})
+minetest.register_node(":streets:trafficlight_top_extender_left_flashyellow_alt",{
+ 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_alt.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_flashgreen",{
+ 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_tle_left_flashgreen.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",{
drop = "streets:trafficlight_top_extender_left_off",
description = streets.S("Traffic Light Left-Turn Module"),
@@ -930,6 +1059,82 @@ minetest.register_node(":streets:trafficlight_top_extender_right_flashyellow",{
end,
})
+minetest.register_node(":streets:trafficlight_top_extender_right_flashyellow_alt",{
+ 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_alt.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_flashgreen",{
+ 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_tle_right_flashgreen.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",{
drop = "streets:trafficlight_top_extender_left_off",
description = streets.S("Traffic Light Right-Turn Module"),
@@ -1077,6 +1282,33 @@ minetest.register_node(":streets:pedlight_top_flashingdontwalk",{
},
})
+minetest.register_node(":streets:pedlight_top_flashingwalk",{
+ drop = "streets:pedlight_top_off",
+ groups = {cracky = 1, not_in_creative_inventory = 1},
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ drawtype = "nodebox",
+ tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
+ name="streets_pl_flashingwalk.png",
+ animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
+ }},
+ node_box = {
+ type = "fixed",
+ fixed = streets.plBox
+ },
+ light_source = 6,
+ digiline = {
+ receptor = {},
+ wire = {rules=streets.tlDigilineRules},
+ effector = {
+ action = function(pos, node, channel, msg)
+ streets.on_digiline_receive(pos, node, channel, msg)
+ end
+ }
+ },
+})
+
minetest.register_entity(":streets:pedcountdown",{
physical = false,
collisionbox = {0,0,0,0,0,0},
@@ -1209,7 +1441,29 @@ for _,i in pairs({"","_left","_right"}) do
},
})
- minetest.register_alias("streets:trafficlight_top"..i.."_redyellow","streets:trafficlight_top"..i.."_green")
+ minetest.register_node(":streets:trafficlight_top"..i.."_redyellow",{
+ drop = "streets:trafficlight_top"..i.."_off",
+ groups = {cracky = 1, not_in_creative_inventory = 1},
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ drawtype = "nodebox",
+ tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl"..i.."_redyellow.png"},
+ node_box = {
+ type = "fixed",
+ fixed = streets.tlBox
+ },
+ light_source = 6,
+ digiline = {
+ receptor = {},
+ wire = {rules=streets.tlDigilineRules},
+ effector = {
+ action = function(pos, node, channel, msg)
+ streets.on_digiline_receive(pos, node, channel, msg)
+ end
+ }
+ },
+ })
minetest.register_node(":streets:trafficlight_top"..i.."_green",{
drop = "streets:trafficlight_top"..i.."_off",
@@ -1288,6 +1542,87 @@ for _,i in pairs({"","_left","_right"}) do
}
},
})
+
+ minetest.register_node(":streets:trafficlight_top"..i.."_warn_alt",{
+ drop = "streets:trafficlight_top"..i.."_off",
+ groups = {cracky = 1, not_in_creative_inventory = 1},
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ drawtype = "nodebox",
+ tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
+ name="streets_tl"..i.."_warn_alt.png",
+ animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
+ }},
+ node_box = {
+ type = "fixed",
+ fixed = streets.tlBox
+ },
+ light_source = 6,
+ digiline = {
+ receptor = {},
+ wire = {rules=streets.tlDigilineRules},
+ effector = {
+ action = function(pos, node, channel, msg)
+ streets.on_digiline_receive(pos, node, channel, msg)
+ end
+ }
+ },
+ })
+
+ minetest.register_node(":streets:trafficlight_top"..i.."_flashred_alt",{
+ drop = "streets:trafficlight_top"..i.."_off",
+ groups = {cracky = 1, not_in_creative_inventory = 1},
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ drawtype = "nodebox",
+ tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
+ name="streets_tl"..i.."_flashred_alt.png",
+ animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
+ }},
+ node_box = {
+ type = "fixed",
+ fixed = streets.tlBox
+ },
+ light_source = 6,
+ digiline = {
+ receptor = {},
+ wire = {rules=streets.tlDigilineRules},
+ effector = {
+ action = function(pos, node, channel, msg)
+ streets.on_digiline_receive(pos, node, channel, msg)
+ end
+ }
+ },
+ })
+
+ minetest.register_node(":streets:trafficlight_top"..i.."_flashgreen",{
+ drop = "streets:trafficlight_top"..i.."_off",
+ groups = {cracky = 1, not_in_creative_inventory = 1},
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ drawtype = "nodebox",
+ tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{
+ name="streets_tl"..i.."_flashgreen.png",
+ animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.2},
+ }},
+ node_box = {
+ type = "fixed",
+ fixed = streets.tlBox
+ },
+ light_source = 6,
+ digiline = {
+ receptor = {},
+ wire = {rules=streets.tlDigilineRules},
+ effector = {
+ action = function(pos, node, channel, msg)
+ streets.on_digiline_receive(pos, node, channel, msg)
+ end
+ }
+ },
+ })
end
minetest.register_node(":streets:trafficlight_rrfb_off",{
diff --git a/trafficlight/textures/streets_pl_flashingwalk.png b/trafficlight/textures/streets_pl_flashingwalk.png
new file mode 100644
index 0000000..55986d0
--- /dev/null
+++ b/trafficlight/textures/streets_pl_flashingwalk.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_flashgreen.png b/trafficlight/textures/streets_tl_flashgreen.png
new file mode 100644
index 0000000..dd9cb78
--- /dev/null
+++ b/trafficlight/textures/streets_tl_flashgreen.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_flashred_alt.png b/trafficlight/textures/streets_tl_flashred_alt.png
new file mode 100644
index 0000000..5fc8371
--- /dev/null
+++ b/trafficlight/textures/streets_tl_flashred_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_left_flashgreen.png b/trafficlight/textures/streets_tl_left_flashgreen.png
new file mode 100644
index 0000000..9cb8b60
--- /dev/null
+++ b/trafficlight/textures/streets_tl_left_flashgreen.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_left_flashred_alt.png b/trafficlight/textures/streets_tl_left_flashred_alt.png
new file mode 100644
index 0000000..2b11eeb
--- /dev/null
+++ b/trafficlight/textures/streets_tl_left_flashred_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_left_redyellow.png b/trafficlight/textures/streets_tl_left_redyellow.png
new file mode 100644
index 0000000..4b58d78
--- /dev/null
+++ b/trafficlight/textures/streets_tl_left_redyellow.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_left_warn_alt.png b/trafficlight/textures/streets_tl_left_warn_alt.png
new file mode 100644
index 0000000..4e36822
--- /dev/null
+++ b/trafficlight/textures/streets_tl_left_warn_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_redyellow.png b/trafficlight/textures/streets_tl_redyellow.png
new file mode 100644
index 0000000..234d987
--- /dev/null
+++ b/trafficlight/textures/streets_tl_redyellow.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_right_flashgreen.png b/trafficlight/textures/streets_tl_right_flashgreen.png
new file mode 100644
index 0000000..8d21ac9
--- /dev/null
+++ b/trafficlight/textures/streets_tl_right_flashgreen.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_right_flashred_alt.png b/trafficlight/textures/streets_tl_right_flashred_alt.png
new file mode 100644
index 0000000..3a82b10
--- /dev/null
+++ b/trafficlight/textures/streets_tl_right_flashred_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_right_redyellow.png b/trafficlight/textures/streets_tl_right_redyellow.png
new file mode 100644
index 0000000..e0fb8fa
--- /dev/null
+++ b/trafficlight/textures/streets_tl_right_redyellow.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_right_warn_alt.png b/trafficlight/textures/streets_tl_right_warn_alt.png
new file mode 100644
index 0000000..7cadbc4
--- /dev/null
+++ b/trafficlight/textures/streets_tl_right_warn_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tl_warn_alt.png b/trafficlight/textures/streets_tl_warn_alt.png
new file mode 100644
index 0000000..26b1387
--- /dev/null
+++ b/trafficlight/textures/streets_tl_warn_alt.png
Binary files differ
diff --git a/trafficlight/textures/streets_tle_left_flashgreen.png b/trafficlight/textures/streets_tle_left_flashgreen.png
new file mode 100644
index 0000000..8462064
--- /dev/null
+++ b/trafficlight/textures/streets_tle_left_flashgreen.png
Binary files differ
diff --git a/trafficlight/textures/streets_tle_right_flashgreen.png b/trafficlight/textures/streets_tle_right_flashgreen.png
new file mode 100644
index 0000000..59402e0
--- /dev/null
+++ b/trafficlight/textures/streets_tle_right_flashgreen.png
Binary files differ