aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/route_prog.lua
diff options
context:
space:
mode:
authororwell <orwell@bleipb.de>2025-05-27 21:03:14 +0200
committerorwell <orwell@bleipb.de>2025-05-27 21:03:14 +0200
commit8506dd2825b715293138976a5ad1fa11a46206a7 (patch)
tree1f48c1dc03c3bbc6ed6762bd04d10e543a3a580c /advtrains_interlocking/route_prog.lua
parent2a9891577c1b00068cc4ec858c7dc6c5196f0a2b (diff)
parentadc01a0bba29b40278e45c50caa954c435374f7b (diff)
downloadadvtrains-8506dd2825b715293138976a5ad1fa11a46206a7.tar.gz
advtrains-8506dd2825b715293138976a5ad1fa11a46206a7.tar.bz2
advtrains-8506dd2825b715293138976a5ad1fa11a46206a7.zip
Merge branch 'master' into cesky-hvozd
Throw away most of the changes in everything except line_automation. Merge line_automation changes between CH and master
Diffstat (limited to 'advtrains_interlocking/route_prog.lua')
-rw-r--r--advtrains_interlocking/route_prog.lua96
1 files changed, 49 insertions, 47 deletions
diff --git a/advtrains_interlocking/route_prog.lua b/advtrains_interlocking/route_prog.lua
index 76dad28..81aa133 100644
--- a/advtrains_interlocking/route_prog.lua
+++ b/advtrains_interlocking/route_prog.lua
@@ -29,19 +29,17 @@ end
local markerent = {}
minetest.register_entity("advtrains_interlocking:routemarker", {
- initial_properties = {
- visual = "mesh",
- mesh = "trackplane.b3d",
- textures = {"at_il_route_set.png"},
- collisionbox = {-1,-0.5,-1, 1,-0.4,1},
- visual_size = {x=10, y=10},
- static_save = false,
- },
+ visual = "mesh",
+ mesh = "trackplane.b3d",
+ textures = {"at_il_route_set.png"},
+ collisionbox = {-1,-0.5,-1, 1,-0.4,1},
+ visual_size = {x=10, y=10},
on_punch = function(self)
self.object:remove()
end,
get_staticdata = function() return "STATIC" end,
on_activate = function(self, sdata) if sdata=="STATIC" then self.object:remove() end end,
+ static_save = false,
})
@@ -125,11 +123,11 @@ the distant signal aspect is determined as DANGER.
]]--
local function chat(pname, message)
- minetest.chat_send_player(pname, "[Programování cesty] "..message)
+ minetest.chat_send_player(pname, "[Route programming] "..message)
end
local function clear_lock(locks, pname, pts)
locks[pts] = nil
- chat(pname, pts.." již není ovlivněn/a, když je tato cesta nastavena.")
+ chat(pname, pts.." is no longer affected when this route is set.")
end
local function otherside(s)
@@ -176,8 +174,11 @@ function advtrains.interlocking.visualize_route(origin, route, context, tmp_lcks
end
-- display locks
for pts, state in pairs(v.locks) do
- local pos = assert(advtrains.decode_pos(pts))
- routesprite(context, pos, "fix"..k..pts, "at_il_route_lock.png", "Zajištěna ve stavu '"..state.."' po cestě "..route.name.." dokud není úsek #"..k.." uvolněn.")
+ local pos = minetest.string_to_pos(pts)
+ if not pos then
+ pos = advtrains.decode_pos(pts)
+ end
+ routesprite(context, pos, "fix"..k..pts, "at_il_route_lock.png", "Fixed in state '"..state.."' by route "..route.name.." until segment #"..k.." is freed.")
end
end
@@ -204,7 +205,7 @@ function advtrains.interlocking.visualize_route(origin, route, context, tmp_lcks
-- display locks set by player
for pts, state in pairs(tmp_lcks) do
local pos = advtrains.decode_pos(pts)
- routesprite(context, pos, "fixp"..pts, "at_il_route_lock_edit.png", "Zajištěna ve stavu '"..state.."' cestou "..route.name.." (levý klik pro uvolnění)",
+ routesprite(context, pos, "fixp"..pts, "at_il_route_lock_edit.png", "Fixed in state '"..state.."' by route "..route.name.." (punch to unfix)",
function() clear_lock(tmp_lcks, pname, pts) end)
end
end
@@ -215,7 +216,7 @@ local player_rte_prog = {}
function advtrains.interlocking.init_route_prog(pname, sigd, default_route)
if not minetest.check_player_privs(pname, "interlocking") then
- minetest.chat_send_player(pname, attrans("Insufficient privileges to use this!"))
+ minetest.chat_send_player(pname, "Insufficient privileges to use this!")
return
end
local rp = {
@@ -239,7 +240,7 @@ function advtrains.interlocking.init_route_prog(pname, sigd, default_route)
end
player_rte_prog[pname] = rp
advtrains.interlocking.visualize_route(sigd, rp.route, "prog_"..pname, rp.tmp_lcks, pname)
- minetest.chat_send_player(pname, "Režim programování cesty je aktivní. Klikejte levým tlačítkem na TCB pro přidání úseků a na výhybky pro jejich uzamčení.")
+ minetest.chat_send_player(pname, "Route programming mode active. Punch TCBs to add route segments, punch turnouts to lock them.")
end
local function get_last_route_item(origin, route)
@@ -252,32 +253,33 @@ end
local function do_advance_route(pname, rp, sigd, tsref)
table.insert(rp.route, {next = sigd, locks = rp.tmp_lcks})
rp.tmp_lcks = {}
- chat(pname, "Úsek '"..(tsref and (tsref.name or "") or "--konec zab.--").."' přidán na cestu.")
+ chat(pname, "Added track section '"..(tsref and (tsref.name or "") or "--EOI--").."' to the route.")
end
local function finishrpform(pname)
local rp = player_rte_prog[pname]
if not rp then return end
- local form = "size[7,6]label[0.5,0.5;Dokončit programování cesty]"
+ local form = "size[7,6]label[0.5,0.5;Finish programming route]"
local terminal = get_last_route_item(rp.origin, rp.route)
if terminal then
local term_tcbs = advtrains.interlocking.db.get_tcbs(terminal)
if term_tcbs.signal then
- form = form .. "label[0.5,1.5;Cesta končí na signalizaci:]"
- form = form .. "label[0.5,2 ;"..term_tcbs.signal_name.."]"
+ local signalname = (term_tcbs.signal_name or "") .. sigd_to_string(terminal)
+ form = form .. "label[0.5,1.5;Route ends at signal:]"
+ form = form .. "label[0.5,2 ;"..signalname.."]"
else
- form = form .. "label[0.5,1.5;VAROVÁNÍ: Cesta nekončí na signalizaci.]"
- form = form .. "label[0.5,2 ;Cesty většinou končí na signlizacích.]"
- form = form .. "label[0.5,2.5;Nejste-li si jistý/á, zrušte programování!]"
+ form = form .. "label[0.5,1.5;WARNING: Route does not end at a signal.]"
+ form = form .. "label[0.5,2 ;Routes should in most cases end at signals.]"
+ form = form .. "label[0.5,2.5;Cancel if you are unsure!]"
end
else
- form = form .. "label[0.5,1.5;Cesta vede do]"
- form = form .. "label[0.5,2 ;nezabezpečené oblasti]"
+ form = form .. "label[0.5,1.5;Route leads into]"
+ form = form .. "label[0.5,2 ;non-interlocked area]"
end
- form = form.."field[0.8,3.5;5.2,1;name;Zadejte název cesty;]"
- form = form.."button_exit[0.5,4.5; 5,1;save;Uložit cestu]"
+ form = form.."field[0.8,3.5;5.2,1;name;Enter Route Name;]"
+ form = form.."button_exit[0.5,4.5; 5,1;save;Save Route]"
minetest.show_formspec(pname, "at_il_routepf", form)
@@ -325,7 +327,7 @@ local function check_advance_valid(tcbpos, rp)
local adv_tcbs = advtrains.interlocking.db.get_tcbs(this_sigd)
local next_tsid = adv_tcbs.ts_id
local can_over, over_ts, next_tc_bs = false, nil, nil
- local cannotover_rsn = "Rozbíhavý úsek (>2 TCB)"
+ local cannotover_rsn = "Next section is diverging (>2 TCBs)"
if next_tsid then
-- you may not advance over EOI. While this is technically possible,
-- in practise this just enters an unnecessary extra empty route item.
@@ -333,7 +335,7 @@ local function check_advance_valid(tcbpos, rp)
next_tc_bs = over_ts.tc_breaks
can_over = #next_tc_bs <= 2
else
- cannotover_rsn = "Konec zabezpečené oblasti"
+ cannotover_rsn = "End of interlocking"
end
local over_sigd = nil
@@ -375,29 +377,29 @@ local function show_routing_form(pname, tcbpos, message)
-- show nothing at all
-- In all cases, Discard and Backtrack buttons needed.
- local form = "size[7,9.5]label[0.5,0.5;Pokračovat/ukončit cestu]"
+ local form = "size[7,9.5]label[0.5,0.5;Advance/Complete Route]"
if message then
form = form .. "label[0.5,1;"..message.."]"
end
if advance_valid and not is_endpoint then
- form = form.. "label[0.5,1.8;Pokračovat s cestou do dalšího úseku]"
+ form = form.. "label[0.5,1.8;Advance to next route section]"
form = form.."image_button[0.5,2.2; 5,1;at_il_routep_advance.png;advance;]"
form = form.. "label[0.5,3.5;-------------------------]"
else
- form = form.. "label[0.5,2.3;Tato TCB není vhodná]"
- form = form.. "label[0.5,2.8;pro pokračování cesty.]"
+ form = form.. "label[0.5,2.3;This TCB is not suitable as]"
+ form = form.. "label[0.5,2.8;route continuation.]"
end
if advance_valid or is_endpoint then
- form = form.. "label[0.5,3.8;Ukonči cestu ZDE]"
+ form = form.. "label[0.5,3.8;Finish route HERE]"
form = form.."image_button[0.5, 4.2; 5,1;at_il_routep_end_here.png;endhere;]"
if can_over then
- form = form.. "label[0.5,5.3;Ukončit cestu na konci NÁSLEDUJÍCÍHO úseku]"
+ form = form.. "label[0.5,5.3;Finish route at end of NEXT section]"
form = form.."image_button[0.5,5.7; 5,1;at_il_routep_end_over.png;endover;]"
else
- form = form.. "label[0.5,5.3;Pokračování do následujícího úseku]"
- form = form.. "label[0.5,5.8;zde není možné.]"
+ form = form.. "label[0.5,5.3;Advancing over next section is]"
+ form = form.. "label[0.5,5.8;impossible at this place.]"
if cannotover_rsn then
form = form.. "label[0.5,6.3;"..cannotover_rsn.."]"
end
@@ -406,9 +408,9 @@ local function show_routing_form(pname, tcbpos, message)
form = form.. "label[0.5,7;-------------------------]"
if #rp.route > 0 then
- form = form.."button[0.5,7.4; 5,1;retract;Zpět o jeden úsek]"
+ form = form.."button[0.5,7.4; 5,1;retract;Step back one section]"
end
- form = form.."button[0.5,8.4; 5,1;cancel;Zrušit programování cesty]"
+ form = form.."button[0.5,8.4; 5,1;cancel;Cancel route programming]"
minetest.show_formspec(pname, "at_il_rprog_"..minetest.pos_to_string(tcbpos), form)
end
@@ -419,7 +421,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local tcbpts = string.match(formname, "^at_il_rprog_([^_]+)$")
local tcbpos
if tcbpts then
- tcbpos = assert(minetest.string_to_pos(tcbpts))
+ tcbpos = minetest.string_to_pos(tcbpts)
end
if tcbpos then
-- RPROG form
@@ -459,12 +461,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
rp.tmp_locks = rp.route[#rp.route].locks
rp.route[#rp.route] = nil
- chat(pname, "Úsek cesty "..(#rp.route+1).." odstraněn.")
+ chat(pname, "Route section "..(#rp.route+1).." removed.")
end
if fields.cancel then
player_rte_prog[pname] = nil
advtrains.interlocking.clear_visu_context("prog_"..pname)
- chat(pname, "Cesta zahozena.")
+ chat(pname, "Route discarded.")
minetest.close_formspec(pname, formname)
return
end
@@ -485,13 +487,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local rp = player_rte_prog[pname]
if rp then
if #rp.route <= 0 then
- chat(pname, "Bez cíle nemohu naprogramovat cestu.")
+ chat(pname, "Cannot program route without a target")
return
end
local tcbs = advtrains.interlocking.db.get_tcbs(rp.origin)
if not tcbs then
- chat(pname, "Původní TCB se během programování ztratilo. Zkuste cestu naprogramovat znovu.")
+ chat(pname, "The origin TCB has become unknown during programming. Try again.")
return
end
@@ -505,7 +507,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
advtrains.interlocking.clear_visu_context("prog_"..pname)
player_rte_prog[pname] = nil
- chat(pname, "Cesta úspěšně naprogramována.")
+ chat(pname, "Successfully programmed route.")
advtrains.interlocking.show_route_edit_form(pname, rp.origin, #tcbs.routes)
return
@@ -528,10 +530,10 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing)
local meta = minetest.get_meta(pos)
local tcbpts = meta:get_string("tcb_pos")
if tcbpts == "" then
- chat(pname, "Tato TCB není nastavena, nejprve k ní musíte přiřadit kolej")
+ chat(pname, "This TCB is unconfigured, you first need to assign it to a rail")
return
end
- local tcbpos = assert(minetest.string_to_pos(tcbpts))
+ local tcbpos = minetest.string_to_pos(tcbpts)
-- show formspec
@@ -551,7 +553,7 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing)
else
local state = advtrains.getstate(pos)
rp.tmp_lcks[pts] = state
- chat(pname, pts.." je držena ve stavu "..state.." , když je tato cesta nastavena a uvolněna.")
+ chat(pname, pts.." is held in "..state.." position when this route is set and freed ")
end
advtrains.interlocking.visualize_route(rp.origin, rp.route, "prog_"..pname, rp.tmp_lcks, pname)
return