diff options
Diffstat (limited to 'advtrains')
-rw-r--r-- | advtrains/couple.lua | 4 | ||||
-rw-r--r-- | advtrains/debugringbuffer.lua | 2 | ||||
-rw-r--r-- | advtrains/init.lua | 24 | ||||
-rw-r--r-- | advtrains/locale/advtrains.cs.tr | 220 | ||||
-rw-r--r-- | advtrains/nodedb.lua | 2 | ||||
-rw-r--r-- | advtrains/signals.lua | 1 | ||||
-rw-r--r-- | advtrains/tracks.lua | 3 | ||||
-rw-r--r-- | advtrains/trainlogic.lua | 2 | ||||
-rw-r--r-- | advtrains/wagons.lua | 46 |
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) |