Obiekt event

Z MaSzyna
Wersja z dnia 12:21, 6 lip 2022 autorstwa Krzysiuup (dyskusja | edycje) (animation)
Skocz do: nawigacja, szukaj

Każdy wpis event zaczyna się od tych samych parametrów:

    event nazwa typ opoznienie obiekt
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
nazwa Nazwa zdarzenia Tekst
typ Typ zdarzenia. Słowo kluczowe Dostępne typy zostały opisane poniżej.
opoznienie Opóźnienie wykonania zdarzenia [s]. Liczba Można wpisać -1, wtedy zdarzenie będzie wykonywać się cyklicznie.
obiekt Obiekt, na rzecz którego zostanie wywołane zdarzenie. Nazwa obiektu / Nazwy objektów Typ obiektu zależy od typu zdarzenia. Można podać więcej niż jeden.

Można dodać więcej niż jeden objekt, używając | jako separatora, oraz bez spacji. Np ObjA|ObjB

AddValues

Działa podobnie jak event::UpdateValues, jednak zamiast zastępować poprzednie wartości komórki pamięci nowymi, dodaje je do siebie. Tekst jest dołączany na końcu tego w komórce pamięci, a liczby są dodawane jako zmiennoprzecinkowe.

    event nazwa addvalues 0 komorka wartosci condition warunki randomdelay opoznienie_losowe endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
komorka Komórka pamięci, do której dodane zostaną wartości Nazwa obiektu node::memcell
wartosci Dodawane wartości. Tekst, Liczba, Liczba Można nie podawać wartości, wstawiając w jej miejsce znak *
warunki Specyfikacja warunkow dla ktorych event zostanie wykonany Parametr opcjonalny
opoznienie_losowe Zwiekszenie opoznienia o losowa wielkosc z zakresu 0-podana wartosc Liczba Parametr opcjonalny

CopyValues

Umożliwia przekopiowanie zawartości jednej komórki do innej.

    event nazwa copyvalues 0 komorka1 komorka2 flaga endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
komorka1 Komórka pamięci, do której kopiowane są wartości. Nazwa obiektu node::memcell
komorka2 Komórka pamięci, z której kopiowane są wartości. Nazwa obiektu node::memcell
flaga Suma liczb określająca, które wartości mają być skopiowane. Liczba 1 - kopiowanie pierwszej wartości

2 - kopiowanie drugiej wartości

4 - kopiowanie trzeciej wartości

Przykład: Aby skopiować wartość pierwszą i trzecią, należy wpisać liczbę 5 (bo 1 + 4 = 5).

GetValues

Pobiera informacje z komórki pamięci i wysyła do pojazdu stojącego na torze.

    event nazwa getvalues 0 komorka endevent

LogValues

Jeśli nie istnieje dana komórka pamięci to zostanie wypisana do logu zawartość wszystkich komórek w scenerii.

PutValues

Wysyła informacje do pojazdu stojącego na torze z pominięciem komórki pamięci.

UpdateValues

Ładuje informacje do komórki pamięci.

    event nazwa updatevalues 0 komorka wartosci condition warunki randomdelay opoznienie_losowe endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
komorka Komórka pamięci, do której dodane zostaną wartości Nazwa obiektu node::memcell
wartosci Wartości do ustawienia w komórce. Tekst, Liczba, Liczba Można nie podawać wartości, wstawiając w jej miejsce znak *
warunki Specyfikacja warunkow dla ktorych event zostanie wykonany Parametr opcjonalny
opoznienie_losowe Zwiekszenie opoznienia o losowa wielkosc z zakresu 0-podana wartosc Liczba Parametr opcjonalny

animation

Pozwala animować model przez zmianę jego położenia lub kąta obrotu.

    event nazwa animation 0 model typ_animacji submodel wektor tempo endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
model Model, którego submodel będzie animowany. Nazwa obiektu node::model
typ_animacji Typ animacji submodelu. Słowo kluczowe rotate - obrót

translate - przemieszczenie

submodel Submodel, który będzie animowany. Nazwa submodelu z modelu T3D
wektor Docelowe przesunięcie [m] lub obrót [deg] submodelu. Liczby
tempo Tempo przesunięcia w [j/s] Liczba W przypadku podania ujemnej prędkości animacji dla typu rotate animowany element wykona tylko obrót o podana wartość, bez zapętlania.

lights

Zmienia stan świateł modelu.

    event nazwa lights 0 model stany_lampek endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
model Model, któremu zostaną ustawione stany świateł. Nazwa obiektu node::model
stany_lampek W zależności od ilości zdefiniowanych lampek w modelu, znaleźć tu się muszą liczby opisujące ich stan. Liczby Dowiedz się więcej o lampkach

trackvel

Umożliwia zmianę prędkości szlakowej toru.

    event nazwa trackvel 0 tor predkosc endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
tor Tor, któremu zostanie zmieniona prędkość szlakowa. Nazwa obiektu node::track
predkosc Wartość prędkości szlakowej [km/h]. Liczba

visible

Umożliwia zmianę widoczności obiektu.

    event nazwa visible 0 obiekt widocznosc endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
obiekt Obiekt typu node. Nazwa obiektu node
widocznosc Stan widoczności obiektu Liczba 0 - obiekt niewidoczny

1 - obiekt widoczny

voltage

Umożliwia zmianę wartości napięcia podstacji.

    event nazwa voltage 0 zrodlo_zasilania napiecie endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
zrodlo_zasilania Źródło zasilania, któremu zmieniane jest napięcie. Nazwa obiektu node::tractionpowersource
napiecie Wartość napięcia [V]. Liczba

whois

Umożliwia identyfikację składu przez wpisanie do komórki pamięci danych pobranych ze składu.

    event nazwa whois 0 komorka jakie_dane endevent
Parametr Tekst (+1) Liczba 1 (+2) Liczba 2 (+4)
+0 (1..7) Plik rozkładu Ile stacji do końca 1=postój, 0=przelot
+8 (9..15) Miejsce docelowe Kierunek w składzie: 1 albo -1 Moc silników (0=wagon)
+16 (17..23) Nazwa ładunku Ilość ładunku Maksymalna ilość ładunku
+24 (25..31) Typ pojazdu (CHK) Stopień zahamowania Odleglość do wykrytej przeszkody
+32 (32..39) Nazwa pojazdu prowadzącego skład, który wyzwolił event - -
+40 (41..47) Kolejna stacja w rozkładzie jazdy składu do którego należy pojazd, który wyzwolił event - Identyfikator czy na rzeczonej kolejnej stacji ma miejsce postój

Przykład: W torze umieszczony jest wpis event2 test_whois, którego zadaniem zapisanie do komórek informacji o jadącym taborze

//komórki pamięci
node -1 0 mem-typ memcell 0 0 0 none 0 0 none endmemcell 
node -1 0 mem-lad memcell 0 0 0 none 0 0 none endmemcell 
node -1 0 mem-doc memcell 0 0 0 none 0 0 none endmemcell 
node -1 0 mem-roz memcell 0 0 0 none 0 0 none endmemcell 
//eventy zgrupowane pod jedną nazwą (nie jest to wymagane)
config joinduplicatedevents yes endconfig
event test_whois whois 0 mem-roz  7 endevent //rozkład
event test_whois whois 0 mem-doc 15 endevent //docelowość
event test_whois whois 0 mem-lad 23 endevent //ładunek
event test_whois whois 0 mem-typ 31 endevent //typ pojazdu
event test_whois logvalues 0 none endevent //wpisz do logu
config joinduplicatedevents no endconfig

friction

Umożliwia zmianę globalnego współczynnika tarcia.

    event nazwa friction 0 none tarcie endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
tarcie Współczynnik tarcia Liczba z zakresu <0-1> Wartości poniżej 0.5 zmniejszają tarcie, a powyżej 0.5 - zwiększają.

multiple

Umożliwia wywołanie kilku zdarzeń jendocześnie.

    event nazwa multiple 0 komorka zdarzenia else zdarzenia condition warunki randomdelay opoznienie_losowe endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
komorka Komórka piamięci testowana przy warunku. Przy braku wpisać 'none'. Nazwa komorki memcell
zdarzenia Zdarzenia, które mają zostać wywołane. Nazwy obiektów event
warunki Specyfikacja warunków dla których event zostanie wykonany Parametr opcjonalny
opoznienie_losowe Zwiększenie opóźnienia o losową wielkość z zakresu 0-podana wartość Liczba Parametr opcjonalny

Lista warunków:

trackoccupied - event wyzwalany w momencie gdy tor określony w ObjectName jest zajęty
trackfree - event wyzwalany w momencie gdy tor określony w ObjectName jest wolny
probability - event wyzwalany jest w momencie, gdy wylosowana liczba jest mniejsza niż paramter z zakresu 0..1 Akceptowany propability dla zgodności wstecznej z błędem ortograficznym.
memcompare - event wyzwalany jest w momencie gdy zawartość komórki pamięciowej w ObjectName równa jest podanej liście parametrów
memcompareex - rozbudowana wersja warunku memcompare może być definiowana w formie, pozwalającej na bardziej elastyczne uruchamianie eventów. Format wygląda następująco:
memcompareex  tryb_porownania  operator tekst  operator wartosc1  operator wartosc2

gdzie:

tryb_porownania - słowo-klucz określające czy do spełnienia warunku wymagane jest:
zaliczenie porównań wszystkich zdefiniowanych elementów komórki pamięci all
przynajmniej jednego ze zdefiniowanych elementów komórki pamięci any
żadnego ze zdefiniowanych elementów komórki pamięci none
*Dotychczasowy sposób działania warunku memcompare jest odpowiednikiem trybu all
operator - metoda porównania elementu komórki pamięci ze zdefiniowaną wartością. Dostępne metody to:
== - równy
!= - nierówny
< - mniejszy
> - większy
<= - mniejszy lub równy
>= - większy lub równy
*Dotychczasowy sposób działania warunku memcompare jest odpowiednikiem operatora ==
tekst, wartosc1, wartosc2 - wartości z jakimi porównywane będą poszczególne elementy komórki pamięci.
*użycie klucza * zamiast pary: operator i wartość, powoduje pominięcie testu danego elementu.

- - - !!! - - - Uruchomienie eventu warunkowanego może zależeć od więcej niż jednego czynnika. Poszczególne warunki wpisujemy po kolei po słowie kluczowym condition - - - !!! - - -


switch

Umożliwia przestawienie zwrotnicy.

    event nazwa switch 0 zwrotnica przelozenie predkosc_ruchu ruch_dodatkowy endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
zwrotnica Zwrotnica, której stan ma być zmieniony. Nazwa obiektu node::track::switch
przelozenie Przełożenie zwrotnicy. Liczba 0 - jazda na wprost, 1 - jazda na bok
predkosc_ruchu Prędkość liniowa ruchu iglic. Liczba Parametr opcjonalny; -1 - wartosc domyslna (0.1 m/sek)
ruch_dodatkowy Dodatkowy ruch iglicy niedolegającej. Liczba Parametr opcjonalny, -1 - wartość domyślna (0.05 m)

Uwaga! Częściej spotykaną praktyką jest przekładanie zwrotnic za pomocą zdarzeń zaimplementowanych w plikach INC. Realizuje się je za pośrednictwem obiektu event::multiple, podając ich nazwy w parametrze zdarzenia i dodając do każdej z nich znak:

  • + (plus) - jazda na wprost
  • - (minus) - jazda na bok


sound

Odgrywa dźwięk zdefiniowany w node::sound

    event nazwa sound 0 node_sound playstatus radiochannel endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
node_sound Nazwa node dźwięku, który ma zostać odegrany. Nazwa obiektu node::sound
playstatus Czy dźwięk ma być odgrywany. Liczba 0 - wyłączony, 1 - włączony, -1 - włączony bezkierunkowy
radiochannel Opcjonalny numer kanału, na którym odgrywany ma być dźwięk. Jest on wtedy pozycjonowany na radiotelefonie obsadzonego pojazdu i odgrywany tylko przy ustawionym zgodnym kanale. Liczba Parametr opcjonalny; 1 - 10

disable

Występuje w kodzie źródłowym, ale nie jest używany.

    event nazwa disable 0 ? endevent

dynvel

Występuje w kodzie źródłowym, ale nie jest używany.

    event nazwa dynvel 0 ? endevent

message

Występuje w kodzie źródłowym, ale nie jest używany.

    event nazwa message 0 ? endevent

texture

Zmienia teksturę wymienną modelu lub grupy modeli node::model

    event nazwa texture 0 model1|model2|model3|etc skinindex skinfile inputcell endevent
Opis parametrów
Nazwa parametru Znaczenie parametru Typ wartości Uwagi
model1|model2|etc lista modeli które otrzymają nowa teksturą, rozdzielonych znakiem | Nazwa obiektu node::model
skinindex Numer tekstury wymiennej ktora zostanie zastapiona. Liczba W przedziale 1-4.
skinfile Ścieżka do materiału, który ma zostać przypięty jako tekstura wymienna. Ścieżka pliku materiału Lub tekstrury, jesli linkowany bezpośrednio.
inputcell Nazwa opcjonalnej komórki pamięci, której wartości mogą być użyte jako parametry (p1) (p2) oraz (p3) w łancuchu skinfile. Nazwa obiektu memcell None jeśli skinfile nie używa parametrów.

Przykłady:

event ... texture ... tablica1|tablica2 1 rozklad none endevent

Spowoduje zmianę wymiennej tekstury nr 1 w statycznych obiektach tablica1 i tablica2 na teksturę "rozklad".

node ... textureinput memcell 0 0 0 rozklad 2 0 none endmemcell 
event ... texture ... tablica1|tablica2 1 (p1)_(p2) textureinput endevent

Spowoduje zmianę textury wymiennej nr 1 w statycznych obiektach tablica1 i tablica2 na teksture "rozklad_2".

node ... whoiscell memcell 0 0 0 none 0 0 none endmemcell 
event whoisvehiclename whois 0 whoiscell 33 endevent
event whoistexture texture 0 tablica3 2 make:scripts/wyswietlacz&$timetable=(p1) whoisvehiclename endevent
event whoistexturelaunch multiple 0 none whoisvehiclename whoistexture endevent

Spowoduje po wyzwoleniu przez pojazd eventu whoistexturelaunch zapisanie w komórce pamięci jego nazwy i wywołanie skryptu scripts/wyswietlacz.py z parametrem $timetable=nazwapojazdu który to parametr powoduje przekazanie do skryptu aktualnych danych rozkładu rzeczonego pojazdu. Tekstura wygenerowana przez rzeczony skrypt zostanie przypisana jako tekstura wymienna nr 2 w statycznym obiekcie tablica3.