Pulpit kostkowy

Kolejna pierdoła ułatwiająca ciężkie życie bojownika Korpusu Walki z Trainzem.

Dodatek umożliwiający stworzenie prostego pulpitu nastawczego (kostkowego). Dzięki niemu możemy schematycznie zobrazować układ głowic rozjazdowych (a na małych stacjach – całej stacji) z odwzorowaniem położeń rozjazdów i wskazań semaforów.

W od różnieniu od podobnego koncepcyjnie Track Diagram Board, który był regułą sesji i zawierał w sobie kilka pulpitów dla kilku stacji, nasz dodatek jest dodatkiem scenery z tylko jednym pulpitem „w sobie”.

Takie rozwiązanie zastosowałem, żeby umożliwić proste podpięcie skryptu pod dowolny budynek nastawni, które są właśnie scenery.

Uwaga do wszystkich znawców SRK, których boli fakt, że pulpit nie jest idealnie zgodny z pulpitami spotykanymi na PLK: To NIE JEST odwzorowanie prawdziwego pulpitu. I nie trzeba mi pisać, że prawdziwy ma tylko czerwone, zielone i białe. Wiem. Ten dodatek jest narzędziem, pomocą dla gracza, żeby ułatwić nastawianie przebiegów podczas gry. Nic więcej. Semaforki na pulpicie powtarzają stan sygnałów trainzowych i tak ma być – świadomie i z rozmysłem. Pulpit jest zgodny z tym, jak działa sygnalizacja w grze. Strzałki do semaforów niewidocznych też takie są celowo i wiem, że w prawdziwym tak nie jest a strzałki są do blokady liniowej. Tu jest tak, jak ma być i to nie jest ani błąd ani niewiedza autora. Jak kto chce full realizm pulpitu, to jest ISDR. Autor na kolei pracuje z 20 lat i prawdziwych pulpitów widział i używał z milion. Amen, dziękuję za uwagę 🙂

Do rzeczy.

Wizualnie w grze dodatek nie wygląda okazale. Ot, puszka-skrzynka żeliwna, deko zmęczona egzystencją. Farba obłazi, ruda podgryza, klasyczny kolejowy stan zaniedbania – bo to nie przy „głównych” torach. I dobrze, bo taka puszka zawsze się gdzieś znajdzie przy budynku nastawni. Jakaś super-hiper-kosmiczna szafka byłaby kiepska, bo jak tu postawić taką nówkę przy nastawni ze sławojką i cieknącym dachem. Stąd i puszka. Oryginał puszki zmęczonej życiem jest (a na pewno był kiedyś) w Opolu, gdzieś tam z dala od „modernizacji”, znaczy się w zaroślach. Tenże oryginał wypatrzył i uwiecznił w celach teksturotwórczych Ryszard, któremu za udostępnienie fotek dziękuję tą drogą. A jeśli to kogoś bardzo interesuje, to zdjęcia kostek pochodzą z nastawni GPC na stacji Gdynia Port.

Oto i rzeczona puszka po wstawieniu na mapę:

Jak widać – szału nima 🙂

Ale jak to bywa, diabeł tkwi w szczegółach. Więc trzeba czym prędzej te szczegóły poznać. Otwieramy właściwości puszki (samej puszki nie otwieramy, bo nas może kopnąć):

Dużo tych szczegółów, nie? 🙂

Ale skoro ma być pulpit, to przydałoby się określić, z ilu kostek ma się on składać. Trzeba to samemu policzyć, używając narządu wzroku w połączeniu z narządem rozumu. Wyjdzie nam pewnie potrzebny wymiar pulpitu. I uwaga – nie w metrach, litrach czy w dzikich wężach, tylko w kostkach. W kostkach pulpitu. Jak komuś wyjdą wymiary ujemne, to proszę odstawić napoje % i wrócić do tematu później, ewentualnie odwrócić kalkulator do prawidłowej pozycji 😀

No dobra Wpisujemy jeden wymiar – i… nic. I tak ma być. Wpisujemy drugi i… WOW:

Teraz powoli, nie pchamy się. Jeżeli nie ma tego całego ustrojstwa pod pulpitem, to zaptaszczamy zaptaszczalnik „Edit mode” – się pokaże. A jak się nie pokazało – to trzeba powiększyć rozmiar okienka.

Na screenie jest już „coś” zrobione, ale otwiera się czysty pulpit o wymiarach, jakie sobie wpisaliśmy.

Sama edycja jest prosta. Zaznaczmy sobie (na pulpicie) kostkę, po czym z menu pod spodem wybieramy rodzaj kostki (tor, semafor, koziołek itd) i jeszcze niżej ustawienie (obrót) wybranego rodzaju. I staramy się ustawiać tak, żeby całość się jakoś sensownie układała, odpowiednio do układu torowego. Oczywiście żadnej kontroli ze „stanem rzeczywistym” nie ma, możemy sobie ułożyć „cokolwiek”, byle się zmieściło na pulpicie.

Kilka rodzajów kostek wymaga podania obiektu na mapie, do którego to obiektu dana kostka się odnosi. Są to semafory, tarcze i powtarzacze oraz rozjazdy.

I objaśnienie pozycji menu w/g numerków.

1. Miejsce do wpisania nazwy stacji (okręgu) którą steruje nasz pulpit. Klikamy i wpisujemy. Oprócz tego, jeżeli nasz skrypt ktoś wetknął do modelu nastawni i skonfigurował ją prawidłowo, to w tej linijce wpisujemy tekst, który ma się pojawić na budynku: nazwa „pełna” i skrót nazwy posterunku.

2. Pole dające możliwość wyboru wyglądu okna z pulpitem, ale UWAGA – TYLKO W MASZYNIŚCIE. W Geodecie wygląd jest zawsze ten sam. Czyli albo okno bez ramki i przypięte na stałe w jednym miejscu na dole okna, albo z ramką i możliwość przesuwania. Wolny wybór.

3. Pole informujące nas o wymiarach pulpitu i zaptaszczalnik do włączania/wyłączania trybu edycji.
Jeżeli odptaszczymy zaptaszczalnik, możemy na szybko przetestować powiązanie rozjazdów z pulpitem. Odznaczamy, klik w rozjazd na pulpicie i przestawiamy rozjazd na mapie. Uwaga – w geodecie stan rozjazdów i semaforów na pulpicie nie zawsze odpowiada stanowi na mapie! To jest normalna sytuacja, niezależna od skryptu dodatku.

4. Pulpit właściwy, o wymiarach pokazanych w linijce 2.

5. Pole właściwości wybranej kostki: Jej współrzędne liczone od lewego górnego rogu (uwaga – liczy się od 0, nie od 1!) i podgląd wybranej kostki. Jeżeli wybraliśmy rozjazd, wykolejnicę, semafor, semafor niewidzialny, tarczę zaporową, tarczę manewrową, tarczę ostrzegawczą lub powtarzacz – to pod obrazkiem jest link edycji obiektu, z którym kostka jest powiązana. I tu dwie ważne uwagi:
– pulpit „widzi” tylko sygnalizatory będące „sygnałami” dla gry. Dlatego do kostki „tarcza manewrowa” możemy przypisać tylko tarcze Tm „normalne”, czyli te, które nie są distant, uzależniane ani stałe!!
– z tego samego powodu to tarcz ostrzegawczych i powtarzaczy przypisujemy semafor, którego wskazania tarcza powtarza, a nie samą tarczę/Sp.

6. Pole wyboru typu kostki. Wybieramy jej wygląd i funkcję, czyli pusta, tor,rozjazd, semafor itd. Ikonki mają podpowiedzi, więc wystarczy najechać myszem na ikonkę i wyskoczy informacja, co za zwierz. Oczywiście wybór dotyczy „klikniętej” na pulpicie kostki, o współrzędnych podanych w wierszu 4.

7. Pole wyboru orientacji (kurde, brzmi to dziwnie 🙂 ) czy też „obrotu” kostki, w ramach danego typu (wybranego w wierszu 5). Ilość pozycji jest różna, czyli co klikniemy w 5, to nam się pokaże w 6.

8. Przyciski dodawania wierszy i kolumn. Czyli poszerzania pulpitu. Dalszy opis chyba zbędny.

9. Przyciski usuwania wierszy i kolumn. Ważne – usuwanie jest nieodwracalne (w sensie wymazuje zawartość), więc jeśli usuniemy wiersz z zawartością, to jej nie odzyskamy. Po po wstawieniu przyciskiem z 7 dostaniemy puste kostki!

10. Przyciski przesuwania zawartości pulpitu. Uwaga jak wyżej – jeżeli wyjedziemy zawartością poza pulpit, to przesunięcie z powrotem da puste kostki.

11. Wiersz umożliwiający zmianę rozmiaru kostek. Klikamy w napis i z okienka wybieramy jedną z czterech opcji: 24×24 pixele, 32×32 pixele, 64×64 pixele i 128×128 pixeli. Wszystkie obrazki kostek (te w folderze) są 64×64, więc zmiana rozmiaru to zwykłe przeskalowanie. Stąd wymiar 128×128 pixeli może być nieco rozmazany. Ale za to na 100calowym ekranie 300000000×4000000000 będzie ten pulpit widać 😀

Obok linku kostka w aktualnie wybranym rozmiarze.

12. Wiersz do szybkiego kasowania pulpitu. Po kliknięciu wyskoczy potwierdzenie, po potwierdzeniu wracamy do stanu z drugiego screena (czyli brak kostek i wyłączona edycja). Kasowanie też jest nieodwracalne, stąd potwierdzenie.


Tu porad kilka:

1. Rozjazd krzyżowy, anglikiem zwany:

Ponieważ ludziska mają problem z prawidłowym przypisaniem stron Rkpd do kostek, poniżej obrazkowa podpowiedź. W skrócie strony a/b i c/d „na gruncie” i na kostkach są ODWROTNIE.

Jak widać, Rkpd da się rozbić funkcjonalnie na dwa zwykłe rozjazdy, zwiększając dwukrotnie długość całości. I wtedy zwrotnice rozsuwając się, zamieniają się stronami (patrz czerwone strzałki). Dlatego przypisujemy kostki „prawy do lewego”, bo z punktu widzenia SRK są one funkcjonalnie zamienione. I wtedy kierunki rozjazdów i całość przebiegów zgadza się z tym, co mamy w terenie.

2. Tory izolowane, czyli wskazywanie zajętości toru na pulpicie.

Da się. A poniżej instrukcja:

Mierzymy tor. Najlepiej od semafora do semafora. Czy tam tarczy, czy jak je zwał:

Wyszło (mi w przykładzie) 1322m. Jak wam nie wyjdzie tyle samo, to nie panikować. Tak ma być 🙂 To po przecinku olewamy, to nie apteka. Teraz będzie matematyka dla zaawansowanych: Zmierzone ileś dzielimy na pół. Mi wyszło… TAK!!! 661!!!. Teraz naszą strzałkę skracamy od jednego końca do wyliczonego w pocie czoła wymiaru:

Czyli mamy koniec strzałki dokładnie w połowie odcinka, który chcemy kontrolować.

W tym miejscu ustawiamy trigger (po naszemu nazwali toto „wyzwalacz”. To takie zielone. Taki jak creeper w Minecrafcie, tyle że nie wybucha. Uwaga, szuka się tego w menu tam gdzie tory i semafory, w trzeciej zakładce. Uwaga, ważne: Od razu nazywamy go w jakiś sensowny sposób, najlepiej coś w stylu GPA Jt15, gdzie GPA to nazwa (skrót) stacji czy okręgu nastawczego, Jt to kolejowy skrót od „It” czyli „izolacja torowa” a 15 – nr toru. Jt zamiast It przyjęło się ze względu na to, że „I” łatwo pomylić z „1”, zwłaszcza w piśmie odręcznym. Zauważyliście, że na kolei NIGDY I NIGDZIE nie ma semafora „I”? Zawsze jest G-H-J-K-L, ale „I” nie ma. Z tego samego powodu.

Teraz będzie trudniej. Domyślnie nasz creeper… tfu, wróć, nie ta gra. Nasz trigger ma „zasięg” 20m w każdą stronę. Czyli jak coś przyjedzie i będzie dalej, niż te 20m, to trigger tego nie „zobaczy”. I co? I nic, na szczęście da się to zmienić. Klikamy w kropę, żeby rozwinąć menu opcji zaawansowanych. Tą kropę, która na screenie poniżej prawie jest zakryta ramką:

W okienku wpisujemy wartość odpowiadającą połowie długości naszego odcinka torowego, czyli tą wartość, jaka nam wyszła po podzieleniu całości na 2 i na jaką skracaliśmy strzałkę. Uwaga, samo wpisanie NIE ZMIENIA jeszcze wartości creep… yyy… triggera (chyba trzeba odstawić Minecrafta). Klikamy przycisk zakółkowany na zielono a następnie klikamy w trigger na torze. Dla pewności kilka razy, bo oczywiście durne kangury nie wpadły na to, że może by się przydało jakieś potwierdzenie operacji. Ale jak się chodzi głową w dół, to łeb z dupą zamienia się miejscami. Zawartość tychże też, a gównem ciężko się myśli – skutki mamy w postaci Trainzowych głupot właśnie. W ten sposób (o ile czegoś spektakularnie nie spieprzyliśmy) nasz trigger stoi w środku toru i ma zasięg „czułości” od semafora do semafora. Połowa drogi za nami.

Wracamy do opcji naszego pulpitu. Jeżeli jeszcze nie mamy kostek z zajętością, to je wstawiamy. Kostki te, podobnie jak semaforowe czy rozjazdowe, mają możliwość przypisania obiektu, do którego się odnoszą:

Jeżeli toto zaramkowane klikniemy, to wyskoczy nam okienko z listą, ale tym razem triggerów. Tu wychodzi powód, dla którego trzeba sensownie nazywać triggery w torach. Zostawiając domyślne nazwy, mamy listę z milionem pozycji „Triggerileśtam”. I weź tu się człowieku połap, który jest który. Jasne? Acha, na liście pojawiają się też niektóre inne triggery, np przejazdowe czy bloki blokady liniowej. Dlatego nazwy są takie ważne.

Jeśli wszystko poszło dobrze, to do kostki przypisał nam się trigger w torze. To samo robimy z innymi kostkami. Ponieważ można jeden i ten sam trigger przypisać do kilku kostek, robimy to. W ten sposób zajęcie toru zaświeci nam na czerwono cały ciąg kostek na pulpicie.

Tu podpowiedź: W Geodecie nie mamy co panikować, że „nie świeci”. Bo nie będzie. Triggery reagują na ruch taboru, dlatego trzeba odpalić Maszynistę, otworzyć pulpit i się przejechać dla sprawdzenia.

A jak się komu chce, to można sobie taki np tor podzielić (w wyobraźni, nie pukamy siekierką w monitor) na na przykład cztery odcinki. W połowie każdego ustawić trigger z odpowiednim promieniem. Na pulpicie wstawić cztery kostki i każdej przypisać inny trigger – i mamy podgląd „sekwencyjny” wjazdu składu. A że promień triggera podaje się z dokładnością do 0.1m, to minimalna długość kontrolowanego odcinka to 20cm. Czyli bez problemu opukamy sobie np. łączniki międzyrozjazdowe w głowicach. To oczywiście wymaga takiego ułożenia kostek, żeby między rozjazdami znalazły się kostki od izolacji. Niedługo pojawią się kostki rozjazdowe i semaforowe z izolacjami, więc będzie prawie jak w prawdziwym pulpicie.


W Maszyniście puszka (zmęczona życiem) jest jak była i też ma menu. Wywołuje się je, jak zawsze: CTRL-prawoklik na dodatku i wybiera „pokaż właściwości”. Wyskakuje nam pulpit, w nieco innej formie:

Jeżeli mamy w geodecie wybrany wygląd „bez ramki”, to pozycja jest zaszyta na stałe. A jeżeli wybraliśmy ramkę – to jest i można z oknem jeździć po całym ekranie. Klik w kostkę rozjazdu przekłada tenże rozjazd na mapie (i na pulpicie) a klik w semafor – otwiera menu właściwości tegoż semafora, gdzie (mowa o sygnalizacji v5.x) wybierzemy sobie przebieg, jeśli jakieś mamy wpisane. I tu jest odpowiedź na pytanie „czemu nie ma w pulpicie przebiegów, tak jak w Track Diagram Board”. Ponieważ okno z pulpitem w wersji bez ramki nie ma krzyżyka do zamykania, wychodzimy z niego klawiszem ESC. I to wszystko 🙂


Dodatek robiony pod 2009+. Z jakiegoś powodu (nie wiem z jakiego i nie jest to za wysoki build, sprawdzałem) nie chce się pokazać w 2006. Jeśli się komuś uda zmusić to do działania w 06, proszę o informację. Skrypt ani mesh nie mają niczego, co by wymagało 2009+.

I na koniec: Głównym założeniem powstania dodatku (oprócz posiadania pulpitu zrobionego pod kątem sygnalizy v5) było zachęcenie naszych Twórców do implementacji tegoż skryptu w ich nastawniach. Puszka puszką, ale pulpit powinien być w nastawni 🙂 Stąd apel – brać, nie pytać się, wydawać wersje „pulpitowe”.
Implementacja prosta:

– do folderu nastawni kopiujemy plik gse i folder img (tez z zylionem obrazków),

– do configu kopiujemy oba string-table, linijki script i class oraz zmieniamy kind na buildable.

– jeżeli nastawnia ma mieć nazwę i / lub skrót obsługiwane skryptem, to w configu muszą być odpowiednie effecty o nazwach name0,1,2,3,4 dla nazw i short0,1,2,3,4 dla skrótów. Koniecznie z numerkiem z podanego zakresu! Samo name bez numerka nie zadziała! Oczywiście nie muszą być wszystkie 5, może być po jednym name i short albo samo name albo samo short. Numer też obojętny, byle zawierał się między 0 a 4. Mowa oczywiście o effect w configu, a nie o nazwach pointów. Skrypt pointów „nie widzi”!

– nadajemy jakiś nowy kuid, żeby się „istniejące” budynki nie pogryzły.

I to wszystko, nastawnia z wbudowanym pulpitem gotowa.


Kuid table:
kuid username
kuid:263713:15000 Pulpit nastawczy
Control board
kuid:198996:100058 Pulpit nastawczy v2
Control board v2
kuid:198996:100059 Pulpit komputerowy OSA-H3
Computer control board OSA-H3

Dodaj komentarz