From 6096564c6c364e0c425c690809d243e2a84bc31d Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Sat, 14 May 2016 18:18:24 -0400 Subject: update castle and streets mods --- trafficlight/init.lua | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 360 insertions(+) (limited to 'trafficlight/init.lua') diff --git a/trafficlight/init.lua b/trafficlight/init.lua index 8e182a0..b55d467 100644 --- a/trafficlight/init.lua +++ b/trafficlight/init.lua @@ -47,6 +47,34 @@ streets.plBox = { {0.1875,-0.0625,0.3125,0.1375,-0.4375,0.5}, --Bottom Visor, Right } +streets.bBox = { + {-0.1875,-0.1875,0.5,0.1875,0.1875,0.75}, --Box + + {-0.125, -0.125, 0.85, 0.125, 0.125, 0.75}, -- Pole Mounting Bracket + + {-0.125,0,0.3125,-0.0625,0.0625,0.5}, --Visor, Left + {-0.0625,0.0625,0.3125,0.0625,0.125,0.5}, --Visor, Center + {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}, @@ -81,6 +109,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_off") end @@ -95,6 +127,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_green") end @@ -109,6 +145,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_red") end @@ -123,6 +163,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_warn") end @@ -137,6 +181,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_warn") end @@ -151,6 +199,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_yellow") end @@ -165,6 +217,10 @@ 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 streets.tlSwitch(pos,"streets:trafficlight_top_flashred") end @@ -197,6 +253,292 @@ 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", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky = 1, level = 2}, + inventory_image = "streets_beacon_inv.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_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_flashred",{ + 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",{ + name="streets_b_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_flashyellow",{ + 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",{ + name="streets_tl_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_off",{ description = streets.S("Traffic Light Left-Turn Module"), drawtype="nodebox", @@ -735,6 +1077,24 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "streets:beacon_off", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "dye:red", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +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 = { -- cgit v1.2.3