From 8b614bf8365a491299d4fdc33e4c45ab741ecfa0 Mon Sep 17 00:00:00 2001 From: cheapie Date: Sun, 10 Jan 2016 02:14:35 -0600 Subject: Add infrastructure as normal content It will be developed as part of this mod now. --- infrastructure/advanced_lane_control_lights.lua | 79 +++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 infrastructure/advanced_lane_control_lights.lua (limited to 'infrastructure/advanced_lane_control_lights.lua') diff --git a/infrastructure/advanced_lane_control_lights.lua b/infrastructure/advanced_lane_control_lights.lua new file mode 100644 index 0000000..f8a2c9f --- /dev/null +++ b/infrastructure/advanced_lane_control_lights.lua @@ -0,0 +1,79 @@ +-- Lane control lights + function lane_control_change(pos, node) + local node = minetest.env:get_node(pos) + if node.name == "infrastructure:lane_control_lights_1" then + minetest.swap_node(pos, {name = "infrastructure:lane_control_lights_2", param2 = node.param2}) + elseif node.name == "infrastructure:lane_control_lights_2" then + minetest.swap_node(pos, {name = "infrastructure:lane_control_lights_3", param2 = node.param2}) + elseif node.name == "infrastructure:lane_control_lights_3" then + minetest.swap_node(pos, {name = "infrastructure:lane_control_lights_4", param2 = node.param2}) + elseif node.name == "infrastructure:lane_control_lights_4" then + minetest.swap_node(pos, {name = "infrastructure:lane_control_lights_5", param2 = node.param2}) + elseif node.name == "infrastructure:lane_control_lights_5" then + minetest.swap_node(pos, {name = "infrastructure:lane_control_lights_1", param2 = node.param2}) + end + end + + for i = 1, 5 do + local groups = {} + if i == 1 then + groups = {cracky = 3} + else + groups = {cracky = 3, not_in_creative_inventory = 1} + end + + minetest.register_node("infrastructure:lane_control_lights_"..tostring(i), { + description = "Lane control lights", + tiles = { + "infrastructure_traffic_lights_side.png", + "infrastructure_traffic_lights_side.png", + "infrastructure_traffic_lights_side.png", + "infrastructure_traffic_lights_side.png", + "infrastructure_traffic_lights_side.png", + "infrastructure_lane_control_lights_"..tostring(i)..".png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky = 3, not_in_creative_inventory = 1}, + light_source = TRAFFIC_LIGHTS_LIGHT_RANGE, + drop = "infrastructure:lane_control_lights_1", + node_box = { + type = "fixed", + fixed = { + {-7/16, -7/16, -1/8, 7/16, 7/16, 1/8}, + {-7/16, 0, -1/4, -3/8, 7/16, -1/8}, + {3/8, 0, -1/4, 7/16, 7/16, -1/8}, + {-7/16, 3/8, -5/16, 7/16, 7/16, -1/8}, + {-1/16, -1/4, 0, 1/16, 1/4, 1/2 - 0.001}, + {-1/4, -1/4, 3/8, 1/4, 1/4, 1/2 - 0.001}, + {-1/4, -1/16, 0, 1/4, 1/16, 1/2 - 0.001} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-7/16, -7/16, -1/8, 7/16, 7/16, 1/8}, + {-7/16, 0, -1/4, -3/8, 7/16, -1/8}, + {3/8, 0, -1/4, 7/16, 7/16, -1/8}, + {-7/16, 3/8, -5/16, 7/16, 7/16, -1/8}, + {-1/16, -1/4, 0, 1/16, 1/4, 1/2 - 0.001}, + {-1/4, -1/4, 3/8, 1/4, 1/4, 1/2 - 0.001}, + {-1/4, -1/16, 0, 1/4, 1/16, 1/2 - 0.001} + } + + }, + + on_punch = function(pos, node) + lane_control_change(pos, node) + end, + + mesecons = {effector = { + action_on = function (pos, node) + lane_control_change(pos, node) + end, + }} + }) + end + + minetest.register_alias("infrastructure:lane_control_lights", "infrastructure:lane_control_lights_1") -- cgit v1.2.3