//semafor czterostawnej samoczynnej blokady liniowej (sbl), trzykomorowy na słupie odchylonym dla toru n + wskaznik W18 + obsluga przez semafor wjazdowy
//parametr 7 we wpisie należy podać nazwę poprzedniego semafora sbl.
//parametr 8 we wpisie nalezy podac nazwe przypisanego odcinka izolowanego
//autorzy: kudłacz, ziomalcl, Transkei

origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 3komorowego blokady liniowej:
node 1000 0 (p1) model 0 0 0 0 sem/glowice/s3ylzcp_dd.t3d tabl/(p6) lights 0 0 1 endmodel            //glowica 
node 200 0 none model 0 0 0 0 sem/slupy/sblylbg.t3d sem/slupy endmodel //slup
node 100 0 none model 0 0 0 0 sem/drabinki/d4yl.t3d sem/slupy endmodel //drabinka
node 400 0 none model 0 0 0 0 sem/wskazniki/w18new.t3d sem/slupy endmodel // wskaznik w18

node 700 200 none lines 110 110 110  100.0                                      //linia zeby byl maszt widoczny z daleka
0.0 0.0 0.0	0.0 3.0 0.0 
endline

rotate 0 0 0
endorigin

//Pamiec semafora i sterowanie AI
node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetVelocity -1 -1  none endmemcell
event (p1)_sem_info getvalues 0 (p1)_sem_mem endevent

event (p1)_sem_info_stop updatevalues 0 (p1)_sem_mem SetVelocity 0 20 endevent
event (p1)_sem_info_slow updatevalues 0 (p1)_sem_mem SetVelocity -1 0 endevent
event (p1)_sem_info_vmax updatevalues 0 (p1)_sem_mem SetVelocity -1 -1 endevent

event (p1)_shp putvalues 0 none (p2) (p3) (p4) CabSignal -1 -1 endevent

//Komendy do wywolywanie z zewnatrz
event (p1)_s1 multiple 0 none (p1)_zeruj_s1 (p1)_sem_ligh1 (p1)_sem_info_stop (p7)_s5 endevent
event (p1)_os1 multiple 0 (p8) (p1)_sem_ligh5 (p1)_sem_info_slow (p7)_s2 condition memcompare * * 0 endevent
event (p1)_os4 multiple 0 (p8) (p1)_sem_ligh4 (p1)_sem_info_slow (p7)_s2 condition memcompare * * 0 endevent
event (p1)_os3 multiple 0 (p8) (p1)_sem_ligh3 (p1)_sem_info_vmax (p7)_s2 condition memcompare * * 0 endevent
event (p1)_os2 multiple 0 (p8) (p1)_sem_ligh2 (p1)_sem_info_vmax condition memcompare * * 0 endevent

//Komendy wewnetrzne - nie uzywac z poziomu scenariusza!
event (p1)_zeruj_s1 lights 0 (p1) 0 -1 0 endevent
event (p1)_sem_ligh1 lights 1 (p1) 0 1 0 endevent
event (p1)_sem_ligh2 lights 0 (p1) 1 0 0 endevent
event (p1)_sem_ligh3 lights 0 (p1) 2 0 0 endevent
event (p1)_sem_ligh4 lights 0 (p1) 0 0 2 endevent
event (p1)_sem_ligh5 lights 0 (p1) 0 0 1 endevent

//dodatkowo mozliwosc wygaszenia tego i poprzednich semaforow:
event (p1)_ciemny multiple 0 none (p1)_sem_ligh0 (p1)_sem_info_stop (p7)_ciemny endevent
event (p1)_sem_ligh0 lights 0 (p1) 0 0 0 endevent

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