aboutsummaryrefslogtreecommitdiff
path: root/advtrains
diff options
context:
space:
mode:
authorSingularis <singularis@volny.cz>2022-07-05 06:48:19 +0200
committerorwell <orwell@bleipb.de>2025-05-27 20:22:01 +0200
commitec223d6f3d5d1a7e1257c468d169a0353ec0963e (patch)
tree683c7a10e32e077b37ece37004442e8c66ebb7f8 /advtrains
parent744aee2cdd319bc19e83cc9efb52a07ae6adbb06 (diff)
downloadadvtrains-ec223d6f3d5d1a7e1257c468d169a0353ec0963e.tar.gz
advtrains-ec223d6f3d5d1a7e1257c468d169a0353ec0963e.tar.bz2
advtrains-ec223d6f3d5d1a7e1257c468d169a0353ec0963e.zip
[advtrains]
- odebrán mód advtrains_luaautomation - lokalizace - zastaralá funkce getpos() nahrazena za get_pos()
Diffstat (limited to 'advtrains')
-rw-r--r--advtrains/couple.lua4
-rw-r--r--advtrains/debugringbuffer.lua2
-rw-r--r--advtrains/init.lua24
-rw-r--r--advtrains/locale/advtrains.cs.tr220
-rw-r--r--advtrains/nodedb.lua2
-rw-r--r--advtrains/signals.lua1
-rw-r--r--advtrains/tracks.lua3
-rw-r--r--advtrains/trainlogic.lua2
-rw-r--r--advtrains/wagons.lua46
9 files changed, 263 insertions, 41 deletions
diff --git a/advtrains/couple.lua b/advtrains/couple.lua
index 3e6c432..49c8a5d 100644
--- a/advtrains/couple.lua
+++ b/advtrains/couple.lua
@@ -475,7 +475,7 @@ minetest.register_entity("advtrains:couple", {
self.object:remove()
end,
on_step=function(self, dtime)
- if advtrains.wagon_outside_range(self.object:getpos()) then
+ if advtrains.wagon_outside_range(self.object:get_pos()) then
--atdebug("Couple Removing outside range")
self.object:remove()
return
@@ -514,7 +514,7 @@ minetest.register_entity("advtrains:couple", {
tp2=advtrains.path_get_interpolated(train2, train2.end_index)
end
local pos_median=advtrains.pos_median(tp1, tp2)
- if not vector.equals(pos_median, self.object:getpos()) then
+ if not vector.equals(pos_median, self.object:get_pos()) then
self.object:set_pos(pos_median)
end
self.position_set=true
diff --git a/advtrains/debugringbuffer.lua b/advtrains/debugringbuffer.lua
index bdb4a3a..e753da0 100644
--- a/advtrains/debugringbuffer.lua
+++ b/advtrains/debugringbuffer.lua
@@ -38,7 +38,7 @@ end
minetest.register_chatcommand("atdebug_show",
{
params = "train sid", -- Short parameter description
- description = "Dump debug log", -- Full description
+ description = "Zapíše ladicí log", -- Full description
privs = {train_operator=true}, -- Require the "privs" privilege to run
func = function(name, param)
advtrains.drb_dump(param)
diff --git a/advtrains/init.lua b/advtrains/init.lua
index a7e5764..00755d6 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -1,4 +1,4 @@
-
+print("[MOD BEGIN] " .. minetest.get_current_modname() .. "(" .. os.clock() .. ")")
--[[
Advanced Trains - Minetest Mod
@@ -422,7 +422,7 @@ function advtrains.load_version_4()
end
--== load luaatc ==
- if atlatc then
+ if minetest.get_modpath("advtrains_luaautomation") and atlatc then
local la_save = serialize_lib.load_atomic(advtrains.fpath.."_atlatc.ls")
if la_save then
atlatc.load(la_save)
@@ -526,7 +526,7 @@ advtrains.avt_save = function(remove_players_from_wagons)
-- save of luaatc
local la_save
- if atlatc then
+ if minetest.get_modpath("advtrains_luaautomation") and atlatc then
la_save = atlatc.save()
end
@@ -614,7 +614,7 @@ minetest.register_globalstep(function(dtime_mt)
if advtrains_itm_mainloop then
advtrains_itm_mainloop(dtime)
end
- if atlatc then
+ if minetest.get_modpath("advtrains_luaautomation") and atlatc then
--atlatc.mainloop_stepcode(dtime)
atlatc.interrupt.mainloop(dtime)
end
@@ -643,7 +643,7 @@ end)
-- first time called in main loop (after the init phase) because luaautomation has to initialize first.
function advtrains.load()
advtrains.avt_load() --loading advtrains. includes ndb at advtrains.ndb.load_data()
- --if atlatc then
+ --if minetest.get_modpath("advtrains_luaautomation") and atlatc then
-- atlatc.load() --includes interrupts
--end == No longer loading here. Now part of avt_save() legacy loading.
if advtrains_itm_init then
@@ -677,7 +677,7 @@ function advtrains.save(remove_players_from_wagons)
local t1 = os.clock()
advtrains.avt_save(remove_players_from_wagons) --saving advtrains. includes ndb at advtrains.ndb.save_data()
- if atlatc then
+ if minetest.get_modpath("advtrains_luaautomation") and atlatc then
atlatc.save()
end
atlog("Saved advtrains save files, took",math.floor((os.clock()-t1) * 1000),"ms")
@@ -700,7 +700,7 @@ end)
minetest.register_chatcommand("at_empty_seats",
{
params = "", -- Short parameter description
- description = "Detach all players, especially the offline ones, from all trains. Use only when no one serious is on a train.", -- Full description
+ description = attrans("Detach all players, especially the offline ones, from all trains. Use only when no one serious is on a train."), -- Full description
privs = {train_operator=true, server=true}, -- Require the "privs" privilege to run
func = function(name, param)
atwarn("Data is being saved. While saving, advtrains will remove the players from trains. Save files will be reloaded afterwards!")
@@ -712,7 +712,7 @@ minetest.register_chatcommand("at_empty_seats",
minetest.register_chatcommand("at_reroute",
{
params = "",
- description = "Delete all train routes, force them to recalculate",
+ description = attrans("Delete all train routes, force them to recalculate"),
privs = {train_operator=true}, -- Only train operator is required, since this is relatively safe.
func = function(name, param)
advtrains.invalidate_all_paths()
@@ -722,8 +722,8 @@ minetest.register_chatcommand("at_reroute",
minetest.register_chatcommand("at_whereis",
{
- params = "<train id>",
- description = "Returns the position of the train with the given id",
+ params = attrans("<train id>"),
+ description = attrans("Returns the position of the train with the given id"),
privs = {train_operator = true},
func = function(name,param)
local train = advtrains.trains[param]
@@ -737,7 +737,7 @@ minetest.register_chatcommand("at_whereis",
minetest.register_chatcommand("at_disable_step",
{
params = "<yes/no>",
- description = "Disable the advtrains globalstep temporarily",
+ description = attrans("Disable the advtrains globalstep temporarily"),
privs = {server=true},
func = function(name, param)
if minetest.is_yes(param) then
@@ -761,5 +761,5 @@ end
local tot=(os.clock()-lot)*1000
+print("[MOD END] " .. minetest.get_current_modname() .. "(" .. os.clock() .. ")")
minetest.log("action", "[advtrains] Loaded in "..tot.."ms")
-
diff --git a/advtrains/locale/advtrains.cs.tr b/advtrains/locale/advtrains.cs.tr
new file mode 100644
index 0000000..606eee7
--- /dev/null
+++ b/advtrains/locale/advtrains.cs.tr
@@ -0,0 +1,220 @@
+# textdomain: advtrains
+This wagon is owned by @1, you can't destroy it.=Vlastníkem/cí toho vagonu je @1, nemáte právo ho rozebrat.
+Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=Varování: Rozeberete-li tento vagon, zůstane vám jen několik železných bloků! Jste-li si jisti, stiskněte Shift a klikněte na vagon levým tlačítkem.
+Show Inventory=Zobrazit inventář
+Select seat:=Vybrat místo k sezení:
+ATC controller, unconfigured.=Řídicí obvod ATC, nenastavený.
+ATC controller=Řídicí obvod ATC
+ATC controller, mode @1@nChannel: @2=Řídicí obvod ATC v režimu "@1"@nKanál: @2
+ATC controller, mode @1@nCommand: @2=Řídicí obvod ATC v režimu "@1"@nPříkaz: @2
+Command=Příkaz
+Command (on)=Příkaz (zapnutý)
+Digiline channel=Kanál digilinky
+Save=Uložit
+ATC Reverse command warning: didn't reverse train, train moving!=Obrácení vlaku - Varování: Příkaz 'R' obrací směr jízdy, ne celý vlak!
+ATC command syntax error: I statement not closed: @1=Chyba syntaxe: Příkaz není uzavřen: @1
+ATC command parse error: Unknown command: @1=Chyba v programu: Neznámý příkaz: @1
+This position is protected!=Tato pozice je chráněna!
+This rail is protected!=Tento traťový úsek je chráněný!
+You need to own at least one neighboring wagon to destroy this couple.=K rozebrání těchto vagonů musíte vlastnit alespoň jeden sousedící vagon.
+@1 Platform (low)=Nízké nástupiště z: @1
+@1 Platform (high)=Vysoké nástupiště z: @1
+@1 Platform (45 degree)=Vysoké úhlopříčné nástupiště z: @1
+@1 Platform (low, 45 degree)=Nízké úhlopříčné nástupiště z: @1
+off=signál stůj
+on=signál volno
+Lampless Signal (@1)=Mechanický signál (@1)
+Signal (@1)=Světelný signál (@1)
+Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=Klíč na konstrukci výhybek@n@nLevé tlačítko přepíná typ trati (rovná/zatáčka/výhybka),@nPravé tlačítko otáčí kolejový úsek.
+This node can't be rotated using the trackworker!=Tento úsek nelze klíčem otočit!
+This node can't be changed using the trackworker!=Tento úsek nelze klíčem změnit!
+Can't place: not pointing at node=Kolej nelze umístit: chybí podloží
+Can't place: space occupied!=Kolej nelze umístit: prostor je již zabrán!
+Can't place: protected position!=Kolej nelze umístit: prostor je chráněn!
+Can't place: Not enough slope items left (@1 required)=Kolej nelze umístit: V inventáři nemáte dostatek dílů na celý svah (jsou požadovány @1)
+Can't place: There's no slope of length @1=Kolej nelze umístit: Není tu svah o délce @1
+Can't place: no supporting node at upper end.=Kolej nelze umístit: chybí podpora na horním konci svahu.
+Deprecated Track=Zastaralý typ koleje
+Track=Kolej
+Bumper=Zarážka
+Detector Rail=Detekující kolej
+Speed:=Rychlost:
+Target:=Cíl:
+@1 Slope=@1: svah
+Can't get on: wagon full or doors closed!=Nelze nastoupit, protože všechny dveře jsou zavřené!
+Can't get on: @1=Nelze nastoupit: @1
+Use Sneak+rightclick to bypass closed doors!=Pro obejití dveří stiskněte Shift+klikněte pravým tlačítkem na vagon.
+Lock couples=Spřažení uzamčeno
+Save wagon properties=Uložit vlastnosti vlaku
+Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=Dveře jsou zavřeny! Pro obejití dveří držte při výstupu Shift.
+Wagon properties=Vlastnosti vagonu
+Get off=Vystoupit
+Get off (forced)=Vystoupit (vynutit)
+(Doors closed)=(Dveře zavřeny)
+Access to @1=Přístup k: @1
+Default Seat=Výchoí sedadlo
+Default Seat (driver stand)=Výchozí sedadlo (sedadlo řidiče/ky)
+Driver Stand=Sedadlo řidiče/ky
+Driver stand=Sedadlo řidiče/ky
+Driver Stand (left)=Sedadlo řidiče/ky (vlevo)
+Driver Stand (right)=Sedadlo řidiče/ky (vpravo)
+Big Industrial Train Engine=Velká průmyslová lokomotiva
+Industrial Train Engine=Průmyslová lokomotiva
+Industrial tank wagon=Cisternový nákladní vagon
+Industrial wood wagon=Klánicový vůz
+Japanese Train Engine=Japonská motorová jednotka
+Japanese Train Wagon=Japonský vagon
+Steam Engine=Parní lokomotiva
+Detailed Steam Engine=Detailní parní lokomotiva
+Passenger Wagon=Osobní vagon
+Passenger area=Prostor pro cestující
+Passenger Area=Prostor pro cestující
+Box Wagon=Dřevěný nákladní vagon
+Subway Passenger Wagon=Žlutý vůz metra
+The wagon's inventory is not empty!=Inventář tohoto vagonu je prázný!
+This track can not be changed!=Tento úsek nemůže být změněn!
+This track can not be rotated!=Tento úsek nemůže být otočen!
+This track can not be removed!=Tento úsek nemůže být odstraněn!
+Position is occupied by a train.=Pozice je zabrána vlakem.
+There's a Track Circuit Break here.=Zde je hranice traťových oddílů (TCB).
+There's a Signal Influence Point here.=Zde je bod účinku signalizace.
+Buffer and Chain Coupler=Spřáhlo typu BCC
+Scharfenberg Coupler=Spřáhlo typu SC
+Japanese Train Inter-Wagon Connection=Japonské spojení mezi vagony(?)
+Can not couple: The couplers of the trains do not match (@1 and @2).=Vagony nelze spojit, protože mají různé typy spřáhel: @1 a @2
+<none>=<žádný/á>
+
+Andrew's Cross=Výstražný kříž
+Boiler=Kotel (pro parní lokomotivu)
+Chimney=Komín (pro parní lokomotivu)
+Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=Duplikátor vlakových souprav@n@nKlik levým: zkopírovat soupravu do schránky@nKlik pravým: umístit duplikát na trať
+driver's cab=Kabina strojvedoucí/ho
+Loading Track=Kolej nakládání/vykládání
+3-way turnout=Třísměrová výhybka
+Y-turnout=Výhybka do Y
+Unloading Track=Kolej vykládání
+90+Angle Diamond Crossing Track=Křížení kolejí s tupým úhlem
+Perpendicular Diamond Crossing Track=Pravoúhlé křížení kolejí
+Diagonal Diamond Crossing Track=Příčné křížení kolejí
+Wallmounted Signal (l)=Semafor pro umístění na zeď (vlevo od trati)
+Wallmounted Signal (r)=Semafor pro umístění na zeď (vpravo od trati)
+Wallmounted Signal (t)=Semafor pro umístění na zeď (nad tratí)
+Wheel=Železniční kolo
+Demo signal at Danger=Ukázkový signál: Stůj
+Demo signal at Free=Ukázkový signál: Volno
+Demo signal at Slow=Ukázkový signál: Pomalu
+Point speed restriction=Omezení rychlosti
+Point Speed Restriction Rail=Kolej s omezením rychlosti
+Station/Stop Rail=Kolej na zastavení ve stanici
+Set point speed restriction:=Nastavit omezení rychlosti:
+Track Circuit Break=Hranice traťových úseků (TCB)
+Interlocking tool@nright-click turnouts to inspect route locks=Železniční inspekční nástroj@nKlikněte pravým tlačítkem na výhybku pro prozkoumání vlakových cest
+Interlocking privilege required!=Na přehazování výhybek je potřeba právo!
+Ks Main Signal=Hlavní semafor KS
+Ks Main Signal Screen=Obrazovka hlavního semaforu KS
+Ks Mast=Sloupek KS
+Ks Speed Restriction Signal (top)=Omezení rychlosti KS (horní díl)
+Ks Speed Restriction Signal (bottom)=Omezení rychlosti KS (spodní díl)
+Ks Shunting Signal=Posunový semafor KS
+Permanent local speed restriction sign=Trvalé omezení traťové rychlosti
+Signal Sign=Železniční značka
+Line speed restriction sign=Linkové omezení traťové rychlosti
+Temporary local speed restriction sign=Dočasné omezení traťové rychlosti
+Ks speed limit indicator=Indikátor traťové rychlosti KS
+Ks distant speed limit indicator=Předzvěst traťové rychlosti KS
+!!! Train off track !!!=!!!Vlak stojí mimo koleje !!!
+Allow these players to access your wagon:=Dovolit těmto hráčským postavám řídit váš vlak:
+Wagon road number:=Číslo vagonu:
+Freight Code:=Nákladní kód:
+Save wagon properties=Uložit vlastnosti vagonu
+Text displayed outside on train=Text zobrazený venku
+Text displayed inside train=Text zobrazený uvnitř
+Line=Linka
+Routingcode=Směrovací kód
+Train overview/coupling control:=Ovládání spřáhel:
+Train overview / coupling control is only shown when the train stands=Ovládání spřáhel je možné jen u strojícího vlaku
+Remote Routesetting=Vzdálené nastavení vlakové cesty
+Clear 'Disable ARS' flag=Zrušit příznak 'vypnout ARS'
+Missing train_operator privilege=Chybí vám právo train_operator
+Not allowed to do this.=Toto vám není dovoleno.
+You don't have the train_operator privilege.=Chybí vám právo train_operator.
+The track you are trying to place the wagon on is not long enough!=Trať není dost dlouhá na umístění tohoto vagonu!
+Wagon placeholder=Místodržící vagonu
+Onboard Computer=Palubní počítač
+Station code '@1' does already exist and is owned by @2=Kód stanice '@1' již existuje a patří: @2
+Not allowed to edit station name, owned by @1=Nemůžete měnit název stanice, protože ta patří: @1
+Next Stop:=Příští zastávka/stanice:
+Unknown Station=Neznámá zastávka
+Error=Chyba
+Stn. @1 T. @2=Stan. @1 kol. @2
+Insufficient privileges to use this!=Nemáte právo použít tento nástroj!
+Route lock inspector=Železniční inspekční nástroj
+Route locks currently put:=Aktuálně uzamčené vlakové cesty:
+Clear=Uvolnit/smazat
+No route locks set=Žádné vlakové cesty
+Emplace manual lock=Ručně uzamknout
+Cannot use this here.=Zde tento nástroj nelze použít.
+Manual lock (@1)=Ručně nastavená vlaková cesta (@1)
+Set aspect manually=Nastavit stav signalizace ručně
+Signal at @1=Značka na pozici @1
+Influence point is set at @1/@2=Bod účinku je nastaven na: @1/@2
+Move=Přesunout
+Influence point is not set.=Bod účinku není nastaven.
+It is recommended to set an influence point.=Je doporučeno nastavit bod účinku.
+This is the point where trains will obey the signal.=To je bod na trati, kde se vlaky budou řídit dle tohoto signálu.
+Set=Nastavit
+Configuring Signal: Please look in train's driving direction and punch rail to set influence point.=Nastavuji semafor: Dívejte se po směru jízdy vlaku a klikněte levým tlačítkem na trať, abyste nastavil/a bod účinku.
+Configuring Signal: Successfully set influence point=Nastavuji semafor: Bod účinku úspěšně nastaven
+Configuring Signal: Influence point of another signal is already present!=Nastavuji semafor: Na tomto místě je již nastaven bod účinku jiného semaforu!
+Configuring Signal: This is not a normal two-connection rail! Aborted.=Nastavuji semafor: Chyba - toto není normální dvousměrná trať!
+Configuring Signal: Node is too far away. Aborted.=Nastavuji semafor: Trať je příliš daleko!
+Select Signal Aspect:=Stav signalizce:
+@=@= Main Signal @=@==@=@= Hlavní signál @=@=
+Halt=Stůj
+Continue at maximum speed=Volno
+Continue, speed limit unchanged (no info)=Volno, omezení rychlosti beze změny
+Continue at speed of @1=Volno, omezení rychlosti: @1
+@=@= Shunting @=@==@=@= Posun @=@=
+allowed=povolen
+@=@= Distant Signal @=@==@=@= Následující signál @=@=
+Expect to stop at the next signal=Bude: Stůj
+Expect to pass the next signal at maximum speed=Bude: Volno
+No info=Bez informace
+Expect to pass the next signal at speed of @1=Bude: Volno s omezením rychlosti na @1
+Save signal aspect=Nastavit
+Station Code=Kód zastávky/st.
+Station Name=Název zastávky/st.
+Door Delay=Zpoždění dveří
+Dep. Speed=Rychl. na odj.
+Stop Time=Doba stání
+Door Side=Otevřít dveře
+Left=vlevo
+Right=vpravo
+Closed=neotevírat
+Reverse train=Obrátit směr jízdy
+Kick out passengers=Vyhodit cestující
+Trains stopping here (ARS rules)=Vlaky zastavující zde (ARS)
+Wagon is full.=Vůz je plně obsazen.
+Doors are closed! (try holding sneak key!)=Dveře jsou zavřené! (zkuste při nástupu držet Shift)
+Tram=Tramvaj
+Construction train=Podbíječka
+
+Blue Subway Passenger Wagon=Modrý vůz metra
+Red Subway Passenger Wagon=Červený vůz metra
+Green Subway Passenger Wagon=Zelený vůz metra
+Black Subway Passenger Wagon=Černý vůz metra
+White Subway Passenger Wagon=Bílý vůz metra
+Gray Subway Passenger Wagon=Šedý vůz metra
+
+prev FC=předch. NK
+Current FC:=Akt. NK:
+next FC=další NK
+
+Detach all players, especially the offline ones, from all trains. Use only when no one serious is on a train.=Vyhodí všechny postavy (zejména ty nejsoucí ve hře) ze všech vlaků.
+Delete all train routes, force them to recalculate=Smaže všechny vlakové cesty, čímž vynutí jejich nové vypočítání.
+Returns the position of the train with the given id=Vypíše pozici vlaku podle jeho id
+Disable the advtrains globalstep temporarily=Dočasně vypne globální krok advtrains
+Display advtrains train map of given area.@nFirst form:[x1 z1 x2 z2] - specify area directly.@nSecond form:[mdef] - Use a predefined map background(see init.lua)@nThird form: No parameters - use WorldEdit position markers.=Zobrazí mapu dané oblasti podle advtrains.@nPrvní forma: [x1 z1 x2 z2] - určit oblast přímo.@nDruhá forma:[mdef] - Použít předdefinované pozadí mapy (viz init.lua)@nTřetí forma: Bez parametrů - použít pozice nastavené v Editoru světa.
+Cache advtrains node database again. Run when tracks changed.=Vytvoří novou keš uzlů pro advtrains. Použijte, pokud se změnilo vedení tratí.
+<train id>=<id vlaku>
+Write node db back to map and find ghost nodes=Zapíše databázi bloků zpět do mapy a najde zdánlivé bloky
diff --git a/advtrains/nodedb.lua b/advtrains/nodedb.lua
index 41ac089..af21756 100644
--- a/advtrains/nodedb.lua
+++ b/advtrains/nodedb.lua
@@ -379,7 +379,7 @@ local ptime=0
minetest.register_chatcommand("at_sync_ndb",
{
params = "", -- Short parameter description
- description = "Write node db back to map and find ghost nodes", -- Full description
+ description = attrans("Write node db back to map and find ghost nodes"), -- Full description
privs = {train_operator=true},
func = function(name, param)
if os.time() < ptime+30 and not minetest.get_player_privs(name, "server") then
diff --git a/advtrains/signals.lua b/advtrains/signals.lua
index b26c950..bd1bd49 100644
--- a/advtrains/signals.lua
+++ b/advtrains/signals.lua
@@ -58,6 +58,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
},
mesh = "advtrains_retrosignal_"..r..rotation..".b3d",
tiles = {"advtrains_retrosignal.png"},
+ use_texture_alpha = "opaque",
inventory_image="advtrains_retrosignal_inv.png",
drop="advtrains:retrosignal_off",
description=attrans("Lampless Signal (@1)", attrans(r..rotation)),
diff --git a/advtrains/tracks.lua b/advtrains/tracks.lua
index 261818e..2e8a5ce 100644
--- a/advtrains/tracks.lua
+++ b/advtrains/tracks.lua
@@ -476,7 +476,8 @@ function advtrains.register_tracks(tracktype, def, preset)
mesh = def.shared_model or (def.models_prefix.."_"..img_suffix..def.models_suffix),
tiles = {def.shared_texture or (def.texture_prefix.."_"..img_suffix..".png"), def.second_texture},
-
+ use_texture_alpha = "clip",
+
groups = {
attached_node = advtrains.IGNORE_WORLD and 0 or 1,
advtrains_track=1,
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index 35c3726..41ded71 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -628,7 +628,7 @@ function advtrains.train_step_b(id, train, dtime)
local ocn = otrn.path_cn[ob_idx]
local ocp = otrn.path_cp[ob_idx]
- local target_is_inside, ref_index, facing
+ local target_is_inside, ref_index, facing, same_dir
if base_cn == ocn then
-- same direction
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index fe1a0f8..9cc7a7d 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -361,7 +361,7 @@ function wagon:on_step(dtime)
--show off-track information in outside text instead of notifying the whole server about this
if train.off_track then
- outside = outside .."\n!!! Train off track !!!"
+ outside = outside .."\n" .. attrans("!!! Train off track !!!")
end
if self.infotext_cache~=outside then
@@ -700,16 +700,16 @@ function wagon:on_rightclick(clicker)
self:get_on(clicker, seatid)
return
else
- rsn="Wagon is full."
+ rsn=attrans("Wagon is full.")
end
else
- rsn="Doors are closed! (try holding sneak key!)"
+ rsn=attrans("Doors are closed! (try holding sneak key!)")
end
end
end
end
end
- minetest.chat_send_player(pname, attrans("Can't get on: "..rsn))
+ minetest.chat_send_player(pname, attrans("Can't get on: @1", rsn))
else
self:show_get_on_form(pname)
end
@@ -805,8 +805,8 @@ function wagon:get_off(seatno)
end
--if not door_entry, or paths missing, fall back to old method
--atdebug("using fallback")
- local objpos=advtrains.round_vector_floor_y(self.object:getpos())
- local yaw=self.object:getyaw()
+ local objpos=advtrains.round_vector_floor_y(self.object:get_pos())
+ local yaw=self.object:get_yaw()
local isx=(yaw < math.pi/4) or (yaw > 3*math.pi/4 and yaw < 5*math.pi/4) or (yaw > 7*math.pi/4)
local offp
--abuse helper function
@@ -859,23 +859,23 @@ function wagon:show_wagon_properties(pname)
]]
local data = advtrains.wagons[self.id]
local form="size[5,5]"
- form = form .. "field[0.5,1;4.5,1;whitelist;Allow these players to access your wagon:;"..minetest.formspec_escape(data.whitelist or "").."]"
- form = form .. "field[0.5,2;4.5,1;roadnumber;Wagon road number:;"..minetest.formspec_escape(data.roadnumber or "").."]"
+ form = form .. "field[0.5,1;4.5,1;whitelist;" .. attrans("Allow these players to access your wagon:") .. ";"..minetest.formspec_escape(data.whitelist or "").."]"
+ form = form .. "field[0.5,2;4.5,1;roadnumber;" .. attrans("Wagon road number:") .. ";"..minetest.formspec_escape(data.roadnumber or "").."]"
local fc = ""
if data.fc then
fc = table.concat(data.fc, "!")
end
- form = form .. "field[0.5,3;4.5,1;fc;Freight Code:;"..fc.."]"
+ form = form .. "field[0.5,3;4.5,1;fc;" .. attrans("Freight Code:") ..";"..fc.."]"
if data.fc then
if not data.fcind then data.fcind = 1 end
if data.fcind > 1 then
- form=form.."button[0.5,3.5;1,1;fcp;prev FC]"
+ form=form.."button[0.5,3.5;1,1;fcp;" .. S("prev FC") .."]"
end
- form=form.."label[1.5,3.5;Current FC:]"
+ form=form.."label[1.5,3.5;" .. S("Current FC:").."]"
local cur = data.fc[data.fcind] or ""
form=form.."label[1.5,3.75;"..minetest.formspec_escape(cur).."]"
- form=form.."button[3.5,3.5;1,1;fcn;next FC]"
+ form=form.."button[3.5,3.5;1,1;fcn;" .. S("next FC") .. "]"
end
form=form.."button_exit[0.5,4.5;4,1;save;"..attrans("Save wagon properties").."]"
minetest.show_formspec(pname, "advtrains_prop_"..self.id, form)
@@ -968,7 +968,7 @@ function wagon:show_bordcom(pname)
form=form.."field[7.5,3.25;3,1;routingcode;"..attrans("Routingcode")..";"..(minetest.formspec_escape(train.routingcode or "")).."]"
--row 5 : train overview and autocoupling
if train.velocity==0 then
- form=form.."label[0.5,4;Train overview /coupling control:]"
+ form=form.."label[0.5,4;"..attrans("Train overview/coupling control:").."]"
linhei=5
local pre_own, pre_wl, owns_any = nil, nil, minetest.check_player_privs(pname, "train_admin")
for i, tpid in ipairs(train.trainparts) do
@@ -1008,9 +1008,9 @@ function wagon:show_bordcom(pname)
end
else
- form=form.."label[0.5,4.5;Train overview / coupling control is only shown when the train stands.]"
+ form=form.."label[0.5,4.5;" .. attrans("Train overview / coupling control is only shown when the train stands.") .. "]"
end
- form = form .. "button[0.5,8;3,1;save;Save]"
+ form = form .. "button[0.5,8;3,1;save;" .. attrans("Save") .. "]"
-- Interlocking functionality: If the interlocking module is loaded, you can set the signal aspect
-- from inside the train
@@ -1020,14 +1020,14 @@ function wagon:show_bordcom(pname)
local oci = train.lzb.checkpoints[i]
if oci.udata and oci.udata.signal_pos then
if advtrains.interlocking.db.get_sigd_for_signal(oci.udata.signal_pos) then
- form = form .. "button[4.5,8;5,1;ilrs;Remote Routesetting]"
+ form = form .. "button[4.5,8;5,1;ilrs;" .. attrans("Remote Routesetting") .. "]"
break
end
end
i=i+1
end
if train.ars_disable then
- form = form .. "button[4.5,7;5,1;ilarsenable;Clear 'Disable ARS' flag]"
+ form = form .. "button[4.5,7;5,1;ilarsenable;" .. attrans("Clear 'Disable ARS' flag") .. "]"
end
end
@@ -1250,7 +1250,7 @@ function wagon:check_seat_group_access(pname, sgr)
return false, "Not allowed to access a driver stand!"
end
if self.seat_groups[sgr].driving_ctrl_access then
- advtrains.log("Drive", pname, self.object:getpos(), self:train().text_outside)
+ advtrains.log("Drive", pname, self.object:get_pos(), self:train().text_outside)
end
return true
end
@@ -1267,7 +1267,7 @@ end
function advtrains.safe_decouple_wagon(w_id, pname, try_run)
if not minetest.check_player_privs(pname, "train_operator") then
- minetest.chat_send_player(pname, "Missing train_operator privilege")
+ minetest.chat_send_player(pname, attrans("Missing train_operator privilege"))
return false
end
local data = advtrains.wagons[w_id]
@@ -1285,7 +1285,7 @@ function advtrains.safe_decouple_wagon(w_id, pname, try_run)
end
if not checklock(pname, data.owner, owdata.owner, data.whitelist, owdata.whitelist) then
- minetest.chat_send_player(pname, "Not allowed to do this.")
+ minetest.chat_send_player(pname, attrans("Not allowed to do this."))
return false
end
@@ -1372,7 +1372,7 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati
return itemstack
end
if not minetest.check_player_privs(placer, {train_operator = true }) then
- minetest.chat_send_player(pname, "You don't have the train_operator privilege.")
+ minetest.chat_send_player(pname, attrans("You don't have the train_operator privilege."))
return itemstack
end
if not minetest.check_player_privs(placer, {train_admin = true }) and minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
@@ -1384,7 +1384,7 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati
local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, prototype.drives_on)
if not prevpos then
- minetest.chat_send_player(pname, "The track you are trying to place the wagon on is not long enough!")
+ minetest.chat_send_player(pname, attrans("The track you are trying to place the wagon on is not long enough!"))
return
end
@@ -1416,5 +1416,5 @@ advtrains.register_wagon("advtrains:wagon_placeholder", {
assign_to_seat_group = {},
wagon_span=1,
drops={},
-}, "Wagon placeholder", "advtrains_wagon_placeholder.png", true)
+}, attrans("Wagon placeholder"), "advtrains_wagon_placeholder.png", true)