2012. június 1., péntek

Railworks Replacer

Írtam egy kis Javas programot, ami a railworks adatfájljaiban tud Blueprint hivatkozások után keresni, és ezeket tömegesen lecserélni a kívánt hivatkozásra.
Ez azt jelenti hogy pl néhány perc alatt le tudsz cserélni a pályán egy jelzőrendszert, vagy vágánytípust, vagy bármilyen objektumot, mindet ami az adott adatfájlban előfordul.
Én pl 5 perc munkával lecseréltem a hagen-siegen pálya jelzőit Magyar jelzőkre, MINDET.
A programom használata elég egyértelmű. A file menü/open files opciójával kiválasztod a módosítandó xml-eket(többet is lehet), ez után a program betölti a bal oldali listába hogy milyen típusú blueprint hivatkozásokat talált. Kijelölöd amit szeretnél módosítani (többet is lehet), és katt a "Filter" gombra ekkor betölti a jobb oldali nagy táblázatba a talált blueprint hivatkozásokat(ezekből több százezer is lehet, de az azonos hivatkozásokból csak  egyet jelenít meg). Ez után a táblázat desired kezdetű elnevezésű oszlopaiban található cellák módosíthatók lesznek duplaklikkel. Ide kell beírni a kívánt értékeket. Ha valamit nem akarsz cserélni nem írsz oda semmit.
És ha kész vagy a "Execute" gombbal érvényesítheted a változtatásokat. Figyelem, egy xml-ben több százezer lecserélendő dolog is lehet, így a lecserélendő dolgok számának, és a megnyitott fájlok mennyiségének növekedésével, a változások fájlba írása is sokáig tarthat.
Például a hagen siegen pálya 50 megabájtos tracks.xml-jében, a kb 30 féle jelző lecserélésével úgy 20 másodpercig dolgozott a program, bár a többi xml általában kisebb, mert egyrészt tilekre vannak osztva, másrészt nem tartalmazza a pálya teljes sínhálózat információit, jelzőkkel, kilométerkövekkel, trackrulekkel, és felsővezetékrendszerrel.
A programban működik a ctrl-f -es keresés, táblázat oszlopfejlécre kattintva lehet rendezni.
A programhoz Java 7 kell.(letöltés)
És itt van maga a program ami úgy futtatható mint bármi más ha fent van a Java. Letöltés

És exe változatban (csak loader tehát java környezet még mindig kell hozzá, viszont ez ellenőrzi annak verzióját, és figyelmeztet ha nem jó, na meg ez akkor is elindul ha el van rontva a gépen a java futtatási beállítás, és jar-ra klikkelve nem történik semmi, emellett több memóriát ad a programnak, így a nagyobb routek (pl az 500+ km-es northern europe sem fog ki rajta, persze ehhez nem ár 3 giga ramnak lenni a gépben)).

Frissítés:
  • január 4. blueprint táblázatnál oszlop szerinti rendezés hozzáadva (klikk a tábla fejlécre)
  • január 14. már nem kell manuálisan serzelni, be kell rakni a program mellé egy serz.exe-t és magától kicsomagol, visszacsomagol ha bin-t nyitsz meg. Ezen kívül a binekről módosítás előtt biztonsági másolatokat is készít bak fájlokba.
  • január 15. hozzáadva tábla mentés, és betöltés opció, tábla jobb felső sarkába kis ikonnal oszlop elrejtés, és tábla méretezés
  • január 16: többszálú változat letölthető
  • január 19-ig: kapott menthető táblázatot, és assets mappa böngészőt ahonnan duplaklikkel a blueprint bin fájlon lehet a kijelölt táblázat sorokba rakatni a hozzá tartozó adatokat
  • február 4: néhány sort a kódban átrendeztem, aminek az eredménye nagyobb fájloknál 20x-os gyorsulás lett a lecserélésnél (a serzelés tovább tart mint maga a lecserélés), kisebb fájloknál (pl scenery) valszeg nincs ekkora gyorsulás ha csak nem SSD meghajtón dolgoztatod, mert itt már a vinyó sebessége a korlát
  • feburár 11-ig: A fájl fa nézetben, light (fény blueprint)-re vagy azt tartalmazó mappákra jobbklikkelve,  lehet kapcsolgatni light blueprintek árnyék vetését (ami rohadt erőforrásigényes). Toggle ki/be kapcsolja (ha be volt kapcsolva, kikapcsolva, ha ki volt, akkor be), disable kikapcsolja, enable bekapcsolja. Ezen kívül induláskor megnézi még a program van-e új verzió, és ha igen figyelmeztet.
  • február 22-ig: vágányhálózat, és egyéb objektumok elhelyezési magasságát is van már lehetőség változtatni.
  • március 20: dav (hang fájl) dekóder(wav-ba), több fájlon egyszerre, akár mappákon is működik ha a mappában vannak konvertálható zip fájlok.
  • június 1: zip fájlok rwp-re konvertálása ugyan úgy működik mint a fenti dav dekóder funkció.