//semafor półsamoczynny, czterokomorowy na słupie prostym.
//autorzy: kudłacz, ziomalcl
//Ra 2f9a: semafor na potrzeby Herbów Starych, W20 automatyczne, wyjazd tylko na p+z albo Sz

origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 4komorowego:
node -1 0 (p1) model 0 0 0 0 sem/glowice/s4ipczb_dd.t3d tabl/(p6) lights 0 1 0 0 endmodel //głowica 
node 200 0 none model 0 0 0 0 sem/slupy/s4ibl.t3d sem/slupy endmodel //słup
node 100 0 none model 0 0 0 0 sem/drabinki/d4i.t3d sem/slupy endmodel 
node 400 0 (p1)w20 model 0 0 0 0 sem/wskazniki/w20v1s.t3d none lights 0 endmodel 
node 700 100 none lines 100 50 20 100 //linia żeby był maszt widoczny z daleka
0 0 0.0	0 4.5 0 
endline
rotate 0 0 0
endorigin

//zdarzenia:

//odczyt z pamięci (zdarzenie przypisane do toru przy ktorym stoi semafor):
event (p1)_sem_info getvalues 0 (p1)_sem_mem endevent

//stany semafora:

event (p1)_s1 multiple 0 none (p1)_sem_ligh1 (p1)_sem_info_stop (p1)_w20off endevent
event (p1)_s10 multiple 0 none (p1)_sem_ligh10 (p1)_sem_info_v40 (p1)w20 endevent
event (p1)_ms2 multiple 0 none (p1)_sem_lighs2 (p1)_sem_info_Shunt25 endevent
event (p1)_sz1 multiple 0 none (p1)_sem_lighz1 (p1)_sem_info_v40 (p1)_wyg_sz endevent
event (p1)_wyg_sz multiple 90 (p1)_sem_mem (p1)_s1 condition memcompare SetVelocity 40 0 endevent

//podswietlanie i gaszenie wskaznika w20:
event (p1)_w20 lights 0 (p1)w20 1 endevent
event (p1)_w20off lights 0 (p1)w20 0 endevent

//powyzsze zdarzenia skladaja sie z:

//memcell do pamiętania prędkości:
node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetVelocity 0 0 none endmemcell

//zdarzenia wpisujące w memcell prędkości przy tym semaforze:
event (p1)_sem_info_stop updatevalues 0 (p1)_sem_mem SetVelocity 0 0 endevent
event (p1)_sem_info_v40 updatevalues 1 (p1)_sem_mem SetVelocity 40 40 endevent
// działa tylko na pojazdy w trybie manewrowym:
event (p1)_sem_info_Shunt25 updatevalues 1 (p1)_sem_mem ShuntVelocity 25 0 endevent

//zdarzenia sterujące światłami:
event (p1)_sem_ligh1 lights 0 (p1) 0 1 0 0 endevent
event (p1)_sem_ligh10 lights 0 (p1) 1 0 1 0 endevent
event (p1)_sem_lighs2 lights 0 (p1) 0 0 0 1 endevent
event (p1)_sem_lighz1 lights 0 (p1) 0 1 0 2 endevent

//uszkodzony semafor - nieoswietlony:
event (p1)_uszk multiple 0 none (p1)_sem_ligh0 (p1)_sem_info_stop endevent
event (p1)_sem_ligh0 lights 0 (p1) 0 0 0 0 endevent
