diff options
Diffstat (limited to 'advtrains_signals_ks/init.lua')
-rw-r--r-- | advtrains_signals_ks/init.lua | 264 |
1 files changed, 80 insertions, 184 deletions
diff --git a/advtrains_signals_ks/init.lua b/advtrains_signals_ks/init.lua index 1f89da9..97d5e44 100644 --- a/advtrains_signals_ks/init.lua +++ b/advtrains_signals_ks/init.lua @@ -4,8 +4,6 @@ -- Note that the group value of advtrains_signal is 2, which means "step 2 of signal capabilities" -- advtrains_signal=1 is meant for signals that do not implement set_aspect. -local advtrains_signals_ks_mast_tile = {name = "advtrains_signals_ks_mast.png", color = "#8f8f8f"} - local function asp_to_zs3type(asp) local n = tonumber(asp) if not n or n < 4 then return "off" end @@ -88,38 +86,38 @@ end local mainaspects_main = { { name = "proceed", - description = "Volno", + description = "Proceed", zs3 = "off" }, { name = "shunt", - description = "Posun", + description = "Shunt", zs3 = "off", shunt = true, }, { name = "proceed_16", - description = "Volno (rychlost 16)", + description = "Proceed (speed 16)", zs3 = "16", }, { name = "proceed_12", - description = "Volno (rychlost 12)", + description = "Proceed (speed 12)", zs3 = "12", }, { name = "proceed_8", - description = "Volno (rychlost 8)", + description = "Proceed (speed 8)", zs3 = "8", }, { name = "proceed_6", - description = "Volno (rychlost 6)", + description = "Proceed (speed 6)", zs3 = "6", }, { name = "proceed_4", - description = "Volno (rychlost 4)", + description = "Proceed (speed 4)", zs3 = "4", }, } @@ -153,7 +151,7 @@ end local mainaspects_dst = { { name = "expectclear", - description = "Očekávej volno", + description = "Expect Clear", }, } @@ -175,7 +173,7 @@ end local mainaspects_ra = { { name = "shunt", - description = "Posun", + description = "Shunt", shunt = true, }, } @@ -228,12 +226,11 @@ for _, rtab in ipairs({ } end minetest.register_node("advtrains_signals_ks:hs_"..typ.."_"..rot, { - description = attrans("Ks Main Signal"), + description = "Ks Main Signal", drawtype = "mesh", mesh = "advtrains_signals_ks_main_smr"..rot..".obj", - tiles = {advtrains_signals_ks_mast_tile, "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", tile}, - use_texture_alpha = "opaque", - + tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", tile}, + paramtype="light", sunlight_propagates=true, light_source = 4, @@ -263,7 +260,6 @@ for _, rtab in ipairs({ on_rightclick = advtrains.interlocking.signal.on_rightclick, can_dig = advtrains.interlocking.signal.can_dig, after_dig_node = advtrains.interlocking.signal.after_dig, - after_place_node = advtrains.after_place_signal, }) -- rotatable by trackworker end @@ -302,10 +298,10 @@ for _, rtab in ipairs({ } end minetest.register_node("advtrains_signals_ks:vs_"..typ.."_"..rot, { - description = "předzvěst KS", + description = "Ks Distant Signal", drawtype = "mesh", mesh = "advtrains_signals_ks_distant_smr"..rot..".obj", - tiles = {advtrains_signals_ks_mast_tile, "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", tile}, + tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", tile}, paramtype="light", sunlight_propagates=true, @@ -337,7 +333,6 @@ for _, rtab in ipairs({ on_rightclick = advtrains.interlocking.signal.on_rightclick, can_dig = advtrains.interlocking.signal.can_dig, after_dig_node = advtrains.interlocking.signal.after_dig, - after_place_node = advtrains.after_place_signal, }) -- rotatable by trackworker end @@ -355,10 +350,10 @@ for _, rtab in ipairs({ afunc = function() return prts.asp end end minetest.register_node("advtrains_signals_ks:ra_"..typ.."_"..rot, { - description = "posunové návěstidlo KS", + description = "Ks Shunting Signal", drawtype = "mesh", mesh = "advtrains_signals_ks_sht_smr"..rot..".obj", - tiles = {advtrains_signals_ks_mast_tile, "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_ltm_"..typ..".png"}, + tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_ltm_"..typ..".png"}, paramtype="light", sunlight_propagates=true, @@ -367,7 +362,7 @@ for _, rtab in ipairs({ paramtype2 = "facedir", selection_box = { type = "fixed", - fixed = sbox, + fixed = {sbox, {-1/4, -1/2, -1/4, 1/4, -7/16, 1/4}} }, collision_box = { type = "fixed", @@ -393,7 +388,6 @@ for _, rtab in ipairs({ on_rightclick = advtrains.interlocking.signal.on_rightclick, can_dig = advtrains.interlocking.signal.can_dig, after_dig_node = advtrains.interlocking.signal.after_dig, - after_place_node = advtrains.after_place_signal, }) -- rotatable by trackworker end @@ -405,8 +399,7 @@ for _, rtab in ipairs({ drawtype = "mesh", mesh = "advtrains_signals_ks_"..mesh.."_smr"..rot..".obj", tiles = {"advtrains_signals_ks_signpost.png", tile2}, - use_texture_alpha = "opaque", - + paramtype="light", sunlight_propagates=true, light_source = 4, @@ -423,7 +416,7 @@ for _, rtab in ipairs({ save_in_at_nodedb = 1, not_in_creative_inventory = (rtab.ici and typ == dtyp) and 0 or 1, }, - drop = "advtrains_signals_ks:"..prefix.."_"..typ.."_0", + drop = "advtrains_signals_ks:"..prefix.."_"..dtyp.."_0", inventory_image = inv, advtrains = { get_aspect_info = asp, @@ -434,77 +427,27 @@ for _, rtab in ipairs({ on_rightclick = advtrains.interlocking.signal.on_rightclick, can_dig = advtrains.interlocking.signal.can_dig, after_dig_node = advtrains.interlocking.signal.after_dig, - after_place_node = advtrains.after_place_signal, }) -- rotatable by trackworker --TODO add rotation using trackworker end for typ, prts in pairs { - ["hfs"] = { - asp = {main = false, shunt = false}, - n = "pam", - --[[mesh = "_hfs",]] - name = "železniční návěst: posun zakázán", - tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_hfs.png^[makealpha:255,255,255)", - }, - ["pam"] = { - asp = {main = -1, shunt = false, proceed_as_main = true}, - n = "ne4", - name = "železniční návěst: posun pokračuje jako normální vlak", - tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_pam.png^[makealpha:255,255,255)" - }, - ["ne4"] = { - asp = {}, - n = "ne3x1", - mesh="_ne4", - name = "železniční návěst: ne4", - tile2 = "advtrains_signals_ks_sign_ne4.png", - inventory_image = "[combine:20x20:6,0=\\[combine\\:8x20\\:0,0=advtrains_signals_ks_sign_ne4.png", - }, - ["ne3x1"] = { - asp = {}, - n = "ne3x2", - mesh="_ne3", - name = "železniční návěst: ne3x1", - tile2 = "advtrains_signals_ks_sign_ne3x1.png", - inventory_image = "[combine:16x16:6,0=advtrains_signals_ks_sign_ne3x1.png\\^[resize\\:4x16", - }, - ["ne3x2"] = { - asp = {}, - n = "ne3x3", - mesh="_ne3", - name = "železniční návěst: ne3x2", - tile2 = "advtrains_signals_ks_sign_ne3x2.png", - inventory_image = "[combine:16x16:6,0=advtrains_signals_ks_sign_ne3x2.png\\^[resize\\:4x16", - }, - ["ne3x3"] = { - asp = {}, - n = "ne3x4", - mesh="_ne3", - name = "železniční návěst: ne3x3", - tile2 = "advtrains_signals_ks_sign_ne3x3.png", - inventory_image = "[combine:16x16:6,0=advtrains_signals_ks_sign_ne3x3.png\\^[resize\\:4x16", - }, - ["ne3x4"] = { - asp = {}, - n = "ne3x5", - mesh="_ne3", - name = "železniční návěst: ne3x4", - tile2 = "advtrains_signals_ks_sign_ne3x4.png", - inventory_image = "[combine:16x16:6,0=advtrains_signals_ks_sign_ne3x4.png\\^[resize\\:4x16", - }, - ["ne3x5"] = { - asp = {}, - n = "hfs", - mesh="_ne3", - name = "železniční návěst: ne3x5", - tile2 = "advtrains_signals_ks_sign_ne3x5.png", - inventory_image = "[combine:16x16:6,0=advtrains_signals_ks_sign_ne3x5.png\\^[resize\\:4x16", - }, + ["hfs"] = {asp = {main = false, shunt = false}, n = "pam", mesh = "_hfs", owntile = true}, + ["pam"] = {asp = {main = -1, shunt = false, proceed_as_main = true}, n = "ne4"}, + ["ne4"] = {asp = {}, n = "ne3x1", mesh="_ne4", owntile = true}, + ["ne3x1"] = {asp = {}, n = "ne3x2", mesh="_ne3", owntile = true}, + ["ne3x2"] = {asp = {}, n = "ne3x3", mesh="_ne3", owntile = true}, + ["ne3x3"] = {asp = {}, n = "ne3x4", mesh="_ne3", owntile = true}, + ["ne3x4"] = {asp = {}, n = "ne3x5", mesh="_ne3", owntile = true}, + ["ne3x5"] = {asp = {}, n = "hfs", mesh="_ne3", owntile = true}, } do local mesh = prts.mesh or "" - register_sign("sign", typ, prts.n, prts.name, "sign"..mesh, prts.tile2, typ, prts.inventory_image or prts.tile2, prts.asp) + local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)" + if prts.owntile then + tile2 = "advtrains_signals_ks_sign_"..typ..".png" + end + register_sign("sign", typ, prts.n, "Signal Sign", "sign"..mesh, tile2, "hfs", "advtrains_signals_ks_sign_lf7.png", prts.asp) end for typ, prts in pairs { @@ -522,8 +465,7 @@ for _, rtab in ipairs({ if typ == "e" then tile2 = "advtrains_signals_ks_sign_zs10.png" end - register_sign("sign", typ, prts.n, attrans("Permanent local speed restriction sign").." ("..(typ == "e" and attrans("end") or typ) ..")", - "sign"..mesh, tile2, "8", "advtrains_signals_ks_sign_8.png^[invert:rgb", prts.asp) + register_sign("sign", typ, prts.n, "Permanent local speed restriction sign", "sign"..mesh, tile2, "8", "advtrains_signals_ks_sign_8.png^[invert:rgb", prts.asp) end for typ, prts in pairs { @@ -534,10 +476,9 @@ for _, rtab in ipairs({ ["16"] = {main = 16, n = "e"}, ["e"] = {main = -1, n = "4"}, } do - local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)"..(typ == "e" and "" or "^[multiply:orange") + local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)^[multiply:orange" local inv = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_8.png^[makealpha:255,255,255)^[multiply:orange" - register_sign("sign_lf", typ, prts.n, attrans("Temporary local speed restriction sign").." ("..(typ == "e" and attrans("end") or typ) ..")", - "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "temp"}) + register_sign("sign_lf", typ, prts.n, "Temporary local speed restriction sign", "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "temp"}) end for typ, prts in pairs { @@ -550,8 +491,7 @@ for _, rtab in ipairs({ } do local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)" local inv = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_8.png^[makealpha:255,255,255)" - register_sign("sign_lf7", typ, prts.n, attrans("Line speed restriction sign").." ("..(typ == "e" and attrans("end") or typ) ..")", - "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "line"}) + register_sign("sign_lf7", typ, prts.n, "Line speed restriction sign", "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "line"}) end -- Geschwindigkeits(vor)anzeiger für Ks-Signale @@ -565,9 +505,7 @@ for _, rtab in ipairs({ }) do local def = { drawtype = "mesh", - tiles = {advtrains_signals_ks_mast_tile,"advtrains_signals_ks_head.png", - "advtrains_signals_ks_sign_"..typ..".png^[invert:rgb^[noalpha"}, - use_texture_alpha = "opaque", + tiles = {"advtrains_signals_ks_mast.png","advtrains_signals_ks_head.png","advtrains_signals_ks_sign_"..typ..".png^[invert:rgb^[noalpha"}, paramtype = "light", sunlight_propagates = true, light_source = 4, @@ -582,13 +520,12 @@ for _, rtab in ipairs({ save_in_at_nodedb = 1, not_in_creative_inventory = (rtab.ici and prts.ici) and 0 or 1, }, - after_dig_node = function(pos) advtrains.ndb.update(pos) end, - after_place_node = advtrains.after_place_signal, + after_dig_node = function(pos) advtrains.ndb.update(pos) end } -- Zs 3 local t = table.copy(def) - t.description = attrans("Ks speed limit indicator") + t.description = "Ks speed limit indicator" t.mesh = "advtrains_signals_ks_zs_top_smr"..rot..".obj" t.drop = "advtrains_signals_ks:zs3_off_0" t.selection_box.fixed[1][5] = 0 @@ -601,7 +538,7 @@ for _, rtab in ipairs({ -- Zs 3v local t = table.copy(def) - t.description = attrans("Ks distant speed limit indicator") + t.description = "Ks distant speed limit indicator" t.mesh = "advtrains_signals_ks_zs_bottom_smr"..rot..".obj" t.drop = "advtrains_signals_ks:zs3v_off_0" t.tiles[3] = t.tiles[3] .. "^[multiply:yellow" @@ -610,21 +547,20 @@ for _, rtab in ipairs({ trackworker_rot_incr_param2 = (rot=="60") } minetest.register_node("advtrains_signals_ks:zs3v_"..typ.."_"..rot, t) + --TODO add rotation using trackworker end minetest.register_node("advtrains_signals_ks:mast_mast_"..rot, { - description = attrans("Ks Mast"), + description = "Ks Mast", drawtype = "mesh", mesh = "advtrains_signals_ks_mast_smr"..rot..".obj", tiles = {"advtrains_signals_ks_mast.png"}, - use_texture_alpha = "opaque", - + paramtype="light", sunlight_propagates=true, --light_source = 4, - paramtype2 = "colorfacedir", - palette = "advtrains_signals_ks_mast_palette.png", + paramtype2 = "facedir", selection_box = { type = "fixed", fixed = {rtab.sbox, {-1/4, -1/2, -1/4, 1/4, -7/16, 1/4}} @@ -639,23 +575,14 @@ for _, rtab in ipairs({ trackworker_rot_incr_param2 = (rot=="60") }, drop = "advtrains_signals_ks:mast_mast_0", - after_place_node = advtrains.after_place_signal, }) --TODO add rotation using trackworker end -- Crafting -minetest.register_craft({ - output = "advtrains_signals_ks:hs_danger_0 2", - recipe = { - {'default:steel_ingot', 'dye:red', 'default:steel_ingot'}, - {'dye:yellow', 'default:steel_ingot', 'dye:dark_green'}, - {'default:steel_ingot', 'advtrains_signals_ks:mast_mast_0', 'default:steel_ingot'}, - }, -}) - -minetest.register_craft({ +-- Ks Signals +minetest.register_craft({ -- Ks Mast output = "advtrains_signals_ks:mast_mast_0 10", recipe = { {'default:steel_ingot'}, @@ -663,25 +590,23 @@ minetest.register_craft({ {'default:steel_ingot'}, }, }) - -minetest.register_craft({ - output = 'advtrains_signals_ks:vs_slow_0 10', +minetest.register_craft({ -- Ks Main Signal + output = "advtrains_signals_ks:hs_danger_0 2", recipe = { - {'default:steel_ignot', 'default:steel_ingot'}, - {'dye:green', 'dye:yellow'}, + {'default:steel_ingot', 'dye:red', 'default:steel_ingot'}, + {'dye:yellow', 'default:steel_ingot', 'dye:dark_green'}, + {'default:steel_ingot', 'advtrains_signals_ks:mast_mast_0', 'default:steel_ingot'}, }, }) - -minetest.register_craft({ - output = "advtrains_signals_ks:ra_danger_0 2", +minetest.register_craft({ -- Ks Distant Signal + output = "advtrains_signals_ks:vs_slow_0 2", recipe = { - {'dye:red', 'dye:white', 'dye:red'}, - {'dye:white', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'dye:dark_green', 'default:steel_ingot', 'dye:yellow'}, {'default:steel_ingot', 'advtrains_signals_ks:mast_mast_0', 'default:steel_ingot'}, - }, + } }) - -minetest.register_craft({ +minetest.register_craft({ -- Ks Speed Limit Indicator output = "advtrains_signals_ks:zs3_off_0 2", recipe = { {"","default:steel_ingot",""}, @@ -689,7 +614,7 @@ minetest.register_craft({ {"","advtrains_signals_ks:mast_mast_0",""} }, }) -minetest.register_craft({ +minetest.register_craft({ -- Ks Distant Speed Limit Indicator output = "advtrains_signals_ks:zs3v_off_0 2", recipe = { {"","default:steel_ingot",""}, @@ -697,14 +622,22 @@ minetest.register_craft({ {"","advtrains_signals_ks:mast_mast_0",""} }, }) +minetest.register_craft({ -- Ks Shunting Signal + output = "advtrains_signals_ks:ra_danger_0 2", + recipe = { + {'dye:red', 'dye:white', 'dye:red'}, + {'dye:white', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'advtrains_signals_ks:mast_mast_0', 'default:steel_ingot'}, + }, +}) +-- Speed Restriction signs +-- Crafting entry recipe for signs local sign_material = "default:sign_wall_steel" --fallback if minetest.get_modpath("basic_materials") then sign_material = "basic_materials:plastic_sheet" end ---print("Sign Material: "..sign_material) - -minetest.register_craft({ +minetest.register_craft({ -- Permanent Local Speed Restriction Sign output = "advtrains_signals_ks:sign_8_0 2", recipe = { {sign_material, 'dye:black'}, @@ -714,57 +647,20 @@ minetest.register_craft({ }) sign_material = nil -minetest.register_craft{ - output = "advtrains_signals_ks:sign_8_0 1", - recipe = {{"advtrains_signals_ks:sign_lf7_8_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_hfs_0 1", +-- Circular crafting between sign types +minetest.register_craft{ -- Signal Sign + output = "advtrains_signals_ks:sign_hfs_0", recipe = {{"advtrains_signals_ks:sign_8_0"}} } - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_pam_0 1", +minetest.register_craft{ -- Temporary Local Speed Restriction Sign + output = "advtrains_signals_ks:sign_lf_8_0", recipe = {{"advtrains_signals_ks:sign_hfs_0"}} } - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne4_0 1", - recipe = {{"advtrains_signals_ks:sign_pam_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne3x1_0 1", - recipe = {{"advtrains_signals_ks:sign_ne4_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne3x2_0 1", - recipe = {{"advtrains_signals_ks:sign_ne3x1_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne3x3_0 1", - recipe = {{"advtrains_signals_ks:sign_ne3x2_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne3x4_0 1", - recipe = {{"advtrains_signals_ks:sign_ne3x3_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_ne3x5_0 1", - recipe = {{"advtrains_signals_ks:sign_ne3x4_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_lf_8_0 1", - recipe = {{"advtrains_signals_ks:sign_ne3x5_0"}} -} - -minetest.register_craft{ - output = "advtrains_signals_ks:sign_lf7_8_0 1", +minetest.register_craft{ -- Line Speed Restriction Sign + output = "advtrains_signals_ks:sign_lf7_8_0", recipe = {{"advtrains_signals_ks:sign_lf_8_0"}} } +minetest.register_craft{ -- Permanent Local Speed Restriction Sign + output = "advtrains_signals_ks:sign_8_0", + recipe = {{"advtrains_signals_ks:sign_lf7_8_0"}} +}
\ No newline at end of file |