From 5d96fe39048ae1e404f325ca0cec37105a751a52 Mon Sep 17 00:00:00 2001 From: cheapie Date: Fri, 13 May 2016 21:42:55 -0500 Subject: Add hybrid beacons --- trafficlight/init.lua | 218 +++++++++++++++++++++ trafficlight/textures/streets_hb_flashred.png | Bin 0 -> 1291 bytes trafficlight/textures/streets_hb_flashyellow.png | Bin 0 -> 1287 bytes trafficlight/textures/streets_hb_off.png | Bin 0 -> 941 bytes trafficlight/textures/streets_hb_red.png | Bin 0 -> 1027 bytes trafficlight/textures/streets_hb_yellow.png | Bin 0 -> 1050 bytes .../textures/streets_hybrid_beacon_inv.png | Bin 0 -> 3103 bytes 7 files changed, 218 insertions(+) create mode 100644 trafficlight/textures/streets_hb_flashred.png create mode 100644 trafficlight/textures/streets_hb_flashyellow.png create mode 100644 trafficlight/textures/streets_hb_off.png create mode 100644 trafficlight/textures/streets_hb_red.png create mode 100644 trafficlight/textures/streets_hb_yellow.png create mode 100644 trafficlight/textures/streets_hybrid_beacon_inv.png diff --git a/trafficlight/init.lua b/trafficlight/init.lua index 03e3153..b55d467 100644 --- a/trafficlight/init.lua +++ b/trafficlight/init.lua @@ -57,6 +57,24 @@ streets.bBox = { {0.0625,0,0.3125,0.125,0.0625,0.5}, --Visor, Right } +streets.hbBox = { + {-0.375,-0.25,0.5,0.375,0.25,0.75}, --Box + + {-0.125, -0.125, 0.85, 0.125, 0.125, 0.75}, -- Pole Mounting Bracket + + {-0.3,0.0625,0.3125,-0.2375,0.125,0.5}, --Top Left Visor, Left + {-0.2375,0.125,0.3125,-0.1125,0.1875,0.5}, --Top Left Visor, Center + {-0.1125,0.0625,0.3125,-0.05,0.125,0.5}, --Top Left Visor, Right + + {0.1125,0.0625,0.3125,0.05,0.125,0.5}, --Top Right Visor, Left + {0.2375,0.125,0.3125,0.1125,0.1875,0.5}, --Top Right Visor, Center + {0.3,0.0625,0.3125,0.2375,0.125,0.5}, --Top Right Visor, Right + + {-0.125,-0.125,0.3125,-0.0625,-0.0625,0.5}, --Bottom Visor, Left + {-0.0625,-0.0625,0.3125,0.0625,0,0.5}, --Bottom Visor, Center + {0.0625,-0.125,0.3125,0.125,-0.0625,0.5}, --Bottom Visor, Right +} + streets.tlDigilineRules = { {x= 0, y= 0, z=-1}, {x= 0, y= 0, z= 1}, @@ -91,6 +109,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_off") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_off") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_off") elseif name:find("beacon") then streets.tlSwitch(pos,"streets:beacon_off") else @@ -107,6 +127,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_green") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_green") + elseif name:find("beacon_hybrid") then + --Not Supported elseif name:find("beacon") then --Not Supported else @@ -123,6 +145,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_red") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_red") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_red") elseif name:find("beacon") then --Not Supported else @@ -139,6 +163,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_warn") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_warn") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_flashyellow") elseif name:find("beacon") then streets.tlSwitch(pos,"streets:beacon_flashyellow") else @@ -155,6 +181,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_warn") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_warn") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_flashyellow") elseif name:find("beacon") then streets.tlSwitch(pos,"streets:beacon_flashyellow") else @@ -171,6 +199,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_yellow") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_yellow") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_yellow") elseif name:find("beacon") then --Not Supported else @@ -187,6 +217,8 @@ streets.on_digiline_receive = function(pos, node, channel, msg) streets.tlSwitch(pos,"streets:trafficlight_top_left_flashred") elseif name:find("right") then streets.tlSwitch(pos,"streets:trafficlight_top_right_flashred") + elseif name:find("beacon_hybrid") then + streets.tlSwitch(pos,"streets:beacon_hybrid_flashred") elseif name:find("beacon") then streets.tlSwitch(pos,"streets:beacon_flashred") else @@ -221,6 +253,183 @@ minetest.register_node(":streets:digiline_distributor",{ } }) +minetest.register_node(":streets:beacon_hybrid_off",{ + description = "Hybrid Beacon", + drawtype="nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky = 1, level = 2}, + inventory_image = "streets_hybrid_beacon_inv.png", + light_source = 11, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = streets.hbBox + }, + tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_hb_off.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_hybrid_yellow",{ + drop = "streets:beacon_hybrid_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.hbBox + }, + tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_hb_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_hybrid_red",{ + drop = "streets:beacon_hybrid_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.hbBox + }, + tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_hb_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_hybrid_flashyellow",{ + drop = "streets:beacon_hybrid_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.hbBox + }, + tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{ + name="streets_hb_flashyellow.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:beacon_hybrid_flashred",{ + drop = "streets:beacon_hybrid_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.hbBox + }, + tiles = {"streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png","streets_tl_bg.png",{ + name="streets_hb_flashred.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:beacon_off",{ description = "Beacon", drawtype="nodebox", @@ -877,6 +1086,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "streets:beacon_hybrid_off", + recipe = { + {"dye:red", "default:steel_ingot", "dye:red"}, + {"default:steel_ingot", "dye:yellow", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + minetest.register_craft({ output = "streets:digiline_distributor", recipe = { diff --git a/trafficlight/textures/streets_hb_flashred.png b/trafficlight/textures/streets_hb_flashred.png new file mode 100644 index 0000000..7b0afa2 Binary files /dev/null and b/trafficlight/textures/streets_hb_flashred.png differ diff --git a/trafficlight/textures/streets_hb_flashyellow.png b/trafficlight/textures/streets_hb_flashyellow.png new file mode 100644 index 0000000..3e97632 Binary files /dev/null and b/trafficlight/textures/streets_hb_flashyellow.png differ diff --git a/trafficlight/textures/streets_hb_off.png b/trafficlight/textures/streets_hb_off.png new file mode 100644 index 0000000..999e1a4 Binary files /dev/null and b/trafficlight/textures/streets_hb_off.png differ diff --git a/trafficlight/textures/streets_hb_red.png b/trafficlight/textures/streets_hb_red.png new file mode 100644 index 0000000..4dc175e Binary files /dev/null and b/trafficlight/textures/streets_hb_red.png differ diff --git a/trafficlight/textures/streets_hb_yellow.png b/trafficlight/textures/streets_hb_yellow.png new file mode 100644 index 0000000..27f97dd Binary files /dev/null and b/trafficlight/textures/streets_hb_yellow.png differ diff --git a/trafficlight/textures/streets_hybrid_beacon_inv.png b/trafficlight/textures/streets_hybrid_beacon_inv.png new file mode 100644 index 0000000..f368555 Binary files /dev/null and b/trafficlight/textures/streets_hybrid_beacon_inv.png differ -- cgit v1.2.3