aboutsummaryrefslogtreecommitdiff
path: root/advtrains_signals_ks/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_signals_ks/init.lua')
-rw-r--r--advtrains_signals_ks/init.lua264
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