Obiekt event

Z MaSzyna
Skocz do: nawigacja, szukaj

TODO: Podzielić ten artykuł - opisać każdy podtyp eventu w osobnym artykule, tak jak w przypadku node.

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

    event name type delay object
Opis parametrów
Parametr Interpretacja
name Nazwa zdarzenia
type Typ zdarzenia.

Dostępne typy zostały opisane poniżej.

delay Opóźnienie wykonania zdarzenia [s].

Można wpisać -1, wtedy zdarzenie będzie wykonywać się cyklicznie.

object Obiekt, na rzecz którego zostanie wywołane zdarzenie.

Można dodać więcej niż jeden obiekt, oddzielając ich nazwy symbolem |


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ń jednocześnie oraz uzależnianie ich wykonania od określonych warunków.

    event nazwa multiple 0 memcell events else events condition conditions randomdelay randomDelay endevent
Opis parametrów
Parametr Interpretacja
memcell Komórka pamięci testowana przy warunku. Przy braku wpisać 'none'.
events Nazwy eventów które mają być wykonane.
conditions Specyfikacja warunków dla których event zostanie wykonany.

Parametr opcjonalny.

randomDelay Zwiększenie opóźnienia o losową wielkość z zakresu 0-podana wartość.

Parametr opcjonalny.

Specyfikacja warunków

Warunek Interpretacja
trackoccupied Event wyzwalany w momencie gdy tor określony w ?KOMORCE PAMIECI? jest zajęty.
trackfree Event wyzwalany w momencie gdy tor określony w ?KOMORCE PAMIECI? 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ść podanej komórki pamięci jest taka sama jak w komórce pamięci podanej w parametrze memcell.
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 comparator operator text operator value1 operator value2

gdzie:

comparator - 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 ==
text, value1, value2 - 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.