diff --git a/init.lua b/init.lua index c489028..170e3f9 100644 --- a/init.lua +++ b/init.lua @@ -40,6 +40,7 @@ streets.load_submod("streets_rrxing") streets.load_submod("streets_signs") streets.load_submod("streets_signworkshop") streets.load_submod("streets_steelsupport") +streets.load_submod("streets_roadwork") if minetest.get_modpath("digilines") then streets.load_submod("streets_trafficlight") diff --git a/streets_roadwork/init.lua b/streets_roadwork/init.lua new file mode 100644 index 0000000..02e46c1 --- /dev/null +++ b/streets_roadwork/init.lua @@ -0,0 +1,103 @@ +--[[ + ## StreetsMod 2.0 ## + Submod: roadwork + Optional: true +]] + +minetest.register_node("streets:roadwork_traffic_barrier", { + description = "Traffic Barrier", + paramtype = "light", + drawtype = "nodebox", + tiles = {"streets_concrete.png", "streets_concrete.png", "streets_concrete.png^streets_roadwork_traffic_barrier.png"}, + sunlight_propagates = true, + groups = {cracky = 1, level = 2, wall = 1}, + node_box = { + type = "connected", + fixed = {{-0.3, -0.5, -0.3, 0.3, -0.4, 0.3}, {-0.1, -0.5, -0.1, 0.1, 0.5, 0.1}}, + connect_front = {{-0.3, -0.5, -0.5, 0.3, -0.4, 0.3}, {-0.1, -0.5, -0.5, 0.1, 0.5, 0.1}}, -- z- + connect_back = {{-0.3, -0.5, -0.3, 0.3, -0.4, 0.5}, {-0.1, -0.5, -0.1, 0.1, 0.5, 0.5}}, -- z+ + connect_left = {{-0.5, -0.5, -0.3, 0.3, -0.4, 0.3}, {-0.5, -0.5, -0.1, 0.1, 0.5, 0.1}}, -- x- + connect_right = {{-0.3, -0.5, -0.3, 0.5, -0.4, 0.3}, {-0.1, -0.5, -0.1, 0.5, 0.5, 0.1}}, -- x+ + }, + connects_to = {"group:wall", "group:stone", "group:wood", "group:tree", "group:sign", "group:concrete"}, + sound = default.node_sound_stone_defaults() +}) + +minetest.register_craft({ + output = "streets:roadwork_traffic_barrier 3", + recipe = { + {"dye:red", "dye:white", "dye:red"}, + {"streets:concrete_wall", "streets:concrete_wall", "streets:concrete_wall"}, + } +}) + + +minetest.register_node("streets:roadwork_blinking_light_off", { + description = "Blinking Light", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + tiles = {"streets_roadwork_blinking_light_top.png", "streets_roadwork_blinking_light_top.png", "streets_roadwork_blinking_light_off.png"}, + sunlight_propagates = true, + groups = {cracky = 1}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.125, 0.1875, -0.3125, 0.125}, -- Base + {-0.1875, -0.3125, 0, 0.1875, 0.0625, 0}, -- Light + } + }, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name = "streets:roadwork_blinking_light_on", param2 = minetest.get_node(pos).param2 }) + end, + on_construct = function(pos) + timer = minetest.get_node_timer(pos) + timer:start(1) + end, +}) + +minetest.register_node("streets:roadwork_blinking_light_on", { + description = "Blinking Light", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + tiles = {"streets_roadwork_blinking_light_top.png", "streets_roadwork_blinking_light_top.png", "streets_roadwork_blinking_light_on.png"}, + sunlight_propagates = true, + groups = {cracky = 1, not_in_creative_inventory = 1}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.125, 0.1875, -0.3125, 0.125}, -- Base + {-0.1875, -0.3125, 0, 0.1875, 0.0625, 0}, -- Light + } + }, + light_source = 12, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name = "streets:roadwork_blinking_light_off", param2 = minetest.get_node(pos).param2 }) + end, + on_construct = function(pos) + timer = minetest.get_node_timer(pos) + timer:start(1) + end, + drop = "streets:roadwork_blinking_light_off", +}) + +minetest.register_craft({ + output = "streets:roadwork_blinking_light_off 2", + recipe = { + {"dye:red", "default:torch", "dye:red"}, + {"dye:yellow", "default:steel_ingot", "dye:yellow"}, + } +}) + +minetest.register_abm({ + nodenames = {"streets:roadwork_blinking_light_on", "streets:roadwork_blinking_light_off"}, + interval = 10, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1) + end + end, +}) diff --git a/textures/streets_roadwork_blinking_light_off.png b/textures/streets_roadwork_blinking_light_off.png new file mode 100644 index 0000000..4279745 Binary files /dev/null and b/textures/streets_roadwork_blinking_light_off.png differ diff --git a/textures/streets_roadwork_blinking_light_on.png b/textures/streets_roadwork_blinking_light_on.png new file mode 100644 index 0000000..ee2f69a Binary files /dev/null and b/textures/streets_roadwork_blinking_light_on.png differ diff --git a/textures/streets_roadwork_blinking_light_top.png b/textures/streets_roadwork_blinking_light_top.png new file mode 100644 index 0000000..1975c3e Binary files /dev/null and b/textures/streets_roadwork_blinking_light_top.png differ diff --git a/textures/streets_roadwork_traffic_barrier.png b/textures/streets_roadwork_traffic_barrier.png new file mode 100644 index 0000000..1e4364f Binary files /dev/null and b/textures/streets_roadwork_traffic_barrier.png differ