diff options
author | Singularis <singularis@volny.cz> | 2024-11-27 18:07:48 +0100 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-05-27 20:22:01 +0200 |
commit | 7fc41377ab7526caf4adf79bb86977f62ebbb224 (patch) | |
tree | a20855e8803ea955307cf6f99208ebd11018103f /advtrains | |
parent | 00989e5afe143ae1c3c407a88a8fb32f7705b68b (diff) | |
download | advtrains-7fc41377ab7526caf4adf79bb86977f62ebbb224.tar.gz advtrains-7fc41377ab7526caf4adf79bb86977f62ebbb224.tar.bz2 advtrains-7fc41377ab7526caf4adf79bb86977f62ebbb224.zip |
[advtrains] řídicí obvod ATC nově umožňuje nastavit víceřádkový text uvnitř i venku
- [advtrains] text uvnitř omezen na 5 řádků a text venku na 3
Diffstat (limited to 'advtrains')
-rw-r--r-- | advtrains/atc.lua | 20 | ||||
-rw-r--r-- | advtrains/locale/advtrains.cs.tr | 4 | ||||
-rw-r--r-- | advtrains/wagons.lua | 16 |
3 files changed, 31 insertions, 9 deletions
diff --git a/advtrains/atc.lua b/advtrains/atc.lua index bd8ec46..d314b3c 100644 --- a/advtrains/atc.lua +++ b/advtrains/atc.lua @@ -143,8 +143,8 @@ local function get_formspec(custom_state) "item_image[0.25,0.25;1,1;"..custom_state.node_name_f.."]".. "label[1.4,0.85;řídicí obvod ATC]".. "button_exit[11,0.25;0.75,0.75;close;X]".. - "field[0.25,4.25;11.5,0.75;text_inside;nový text uvnitř:;"..F(custom_state.text_inside).."]".. - "field[0.25,5.5;11.5,0.75;text_outside;nový text venku:;"..F(custom_state.text_outside).."]".. + "textarea[0.25,4.25;11.5,0.75;text_inside;nový text uvnitř (5 ř.):;"..F(custom_state.text_inside).."]".. + "textarea[0.25,5.5;11.5,0.75;text_outside;nový text venku (3 ř.):;"..F(custom_state.text_outside).."]".. "field[0.25,6.75;3,0.75;line;nová linka:;"..F(custom_state.line).."]".. "field[0.25,8;3,0.75;routingcode;nový směr. kód:;"..F(custom_state.routingcode).."]".. "textarea[0.25,9.25;3,2.25;ars;vlaky\\, pro které platí:;"..F(custom_state.ars).."]".. @@ -176,6 +176,18 @@ local function get_formspec(custom_state) return table.concat(formspec) end +local function limit_text(t, limit) + local tbl = t:split("\n") + if #tbl <= limit then + return t + else + for i = #t, limit + 1, -1 do + tbl[i] = nil + end + return table.concat(tbl, "\n") + end +end + local function formspec_callback(custom_state, player, formname, fields) local pos = custom_state.pos if advtrains.is_protected(pos, player:get_player_name()) then @@ -214,8 +226,8 @@ local function formspec_callback(custom_state, player, formname, fields) meta:set_string("channel", custom_state.channel) meta:set_string("line", custom_state.line) meta:set_string("routingcode", custom_state.routingcode) - meta:set_string("text_inside", custom_state.text_inside) - meta:set_string("text_outside", custom_state.text_outside) + meta:set_string("text_inside", limit_text(custom_state.text_inside, 5)) + meta:set_string("text_outside", limit_text(custom_state.text_outside, 3)) meta:set_string("ars", custom_state.ars) --if fields.mode=="digiline" then -- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) ) diff --git a/advtrains/locale/advtrains.cs.tr b/advtrains/locale/advtrains.cs.tr index 09651c9..79b0db8 100644 --- a/advtrains/locale/advtrains.cs.tr +++ b/advtrains/locale/advtrains.cs.tr @@ -234,8 +234,8 @@ TCB assigned to @1=TCB přiřazeno na @1 TCB has been removed.=TCB byla odstraněna. Target:=Cíl: Temporary local speed restriction sign=dočasné omezení traťové rychlosti -Text displayed inside train=Text zobrazený uvnitř -Text displayed outside on train=Text zobrazený venku +Text displayed inside train=Text zobrazený uvnitř (5 ř.) +Text displayed outside on train=Text zobrazený venku (3 ř.) The track you are trying to place the wagon on is not long enough!=Trať není dost dlouhá na umístění tohoto vagonu! The wagon's inventory is not empty!=Inventář tohoto vagonu není prázdný! There's a Signal Influence Point here.=Zde je bod účinku signalizace. diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index e31ec00..15de054 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -951,7 +951,17 @@ function advtrains.step_fc(data) end - +local function limit_text(t, limit) + local tbl = t:split("\n") + if #tbl <= limit then + return t + else + for i = #t, limit + 1, -1 do + tbl[i] = nil + end + return table.concat(tbl, "\n") + end +end function wagon:show_bordcom(pname) @@ -1043,14 +1053,14 @@ function wagon:handle_bordcom_fields(pname, formname, fields) if not train then return end if fields.text_outside then if fields.text_outside~="" then - train.text_outside=fields.text_outside + train.text_outside = limit_text(fields.text_outside, 3) else train.text_outside=nil end end if fields.text_inside then if fields.text_inside~="" then - train.text_inside=fields.text_inside + train.text_inside = limit_text(fields.text_inside, 5) else train.text_inside=nil end |