Obiekt event: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
Linia 42: Linia 42:
 
* [[Obiekt event::whois|whois]]
 
* [[Obiekt event::whois|whois]]
 
* [[Obiekt event::friction|friction]]
 
* [[Obiekt event::friction|friction]]
 +
* [[Obiekt event::multiple|multiple]]
  
 
== multiple ==
 
Umożliwia wywołanie kilku zdarzeń jednocześnie oraz uzależnianie ich wykonania od określonych warunków.
 
    <span style="color:tomato;font-weight:bold">event</span> nazwa <span style="color:orange;font-weight:bold">multiple</span> 0 ''memcell'' ''events'' <span style="color:orange;font-weight:bold">else</span> ''events'' <span style="color:orange;font-weight:bold">condition</span> ''conditions'' <span style="color:orange;font-weight:bold">randomdelay</span> ''randomDelay'' <span style="color:tomato;font-weight:bold">endevent</span>
 
 
{| class="wikitable"
 
|+ Opis parametrów
 
! Parametr
 
! Interpretacja
 
|-
 
| memcell
 
| [[Obiekt_node#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 ===
 
{| class="wikitable"
 
! 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 <tt>all</tt>'''
 
::przynajmniej jednego ze zdefiniowanych elementów komórki pamięci <tt>any</tt>
 
::żadnego ze zdefiniowanych elementów komórki pamięci <tt>none</tt>
 
:''*Dotychczasowy sposób działania warunku <tt>memcompare</tt> jest odpowiednikiem trybu <tt>all</tt>''
 
 
:''operator'' - metoda porównania elementu komórki pamięci ze zdefiniowaną wartością. Dostępne metody to:
 
::<tt>==</tt> - równy
 
::<tt>!=</tt> - nierówny
 
::<tt><</tt> - mniejszy
 
::<tt>></tt> - większy
 
::<tt><=</tt> - mniejszy lub równy
 
::<tt>>=</tt> - większy lub równy
 
:''*Dotychczasowy sposób działania warunku <tt>memcompare</tt> jest odpowiednikiem operatora <tt>==</tt>''
 
 
:''text, value1, value2'' - wartości z jakimi porównywane będą poszczególne elementy komórki pamięci.
 
:''*użycie klucza <tt>*</tt> 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 <tt>condition</tt> - - - !!! - - -''
 
 
--------------------------------------------------------------------
 
|}
 
  
 
== switch ==
 
== switch ==

Wersja z 12:01, 29 mar 2023

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 |


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.