// Przejazd kolejowy ze słupkami i krzyżem św. Andrzeja
// (p1) nazwa
// (p2) (p3) (p4) wspolrzedne
// (p5) rotacja 
// (p6) szerokość drogi
// (p7) nazwa odcinka izolowanego na przejeździe.

origin (p2) (p3) (p4)
rotate 0 (p5) 0

node 1000 0 none model (p6) 0 6 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 6 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 7 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 7 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 8 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 8 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 9 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 9 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 11 180 przejazdy/krzyz_andrzej_nw.t3d none endmodel
node 1000 0 none model (p6) 1.75 11.02 180 roadsign/S_stop.t3d roadsign/calkowo/b-20 endmodel

node -1 0 (p1)R_syg_mem memcell (p6) 0 11 SetVelocity -1 -1 none endmemcell
event (p1)R_syg_info getvalues 1.0 (p1)R_syg_mem endevent

node 1000 0 none model (p6) 0 -6 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 -6 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 -7 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 -7 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 -8 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 -8 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model (p6) 0 -9 0 slupek_niski_40cm.t3d none endmodel
node 1000 0 none model -(p6) 0 -9 0 slupek_niski_40cm.t3d none endmodel

node 1000 0 none model -(p6) 0 -11 0 przejazdy/krzyz_andrzej_nw.t3d none endmodel
node 1000 0 none model -(p6) 1.75 -11.02 0 roadsign/S_stop.t3d roadsign/calkowo/b-20 endmodel

node -1 0 (p1)L_syg_mem memcell -(p6) 0 -11 SetVelocity -1 -1 none endmemcell
event (p1)L_syg_info getvalues 1.0 (p1)L_syg_mem endevent

node -1 0 (p1)_state memcell 0.1 0.1 0.1 otwarty -1 -1 none endmemcell
event (p1)_zamkniety updatevalues 1.0 (p1)_state zamkniety 1 0 endevent
event (p1)_otwarty updatevalues 1.0 (p1)_state otwarty 1 0 endevent

// wpisywanie informacji o tym ze przejazd zostal zamkniety:
//--- zatrzymywanie pojazdow drogowych 
event (p1)R_slow updatevalues 0.0 (p1)R_syg_mem SetVelocity 0.1 0.1 endevent
event (p1)L_slow updatevalues 0.0 (p1)L_syg_mem SetVelocity 0.1 0.1 endevent

event (p1)R_stop updatevalues 5.0 (p1)R_syg_mem SetVelocity 0 0 endevent
event (p1)L_stop updatevalues 5.0 (p1)L_syg_mem SetVelocity 0 0 endevent

//wpisywanie informacji o tym ze przejazd zostal otwarty:
event (p1)R_go updatevalues 1.0 (p1)R_syg_mem SetVelocity -1 -1 endevent
event (p1)L_go updatevalues 1.0 (p1)L_syg_mem SetVelocity -1 -1 endevent

// globalne procedury sterujace:
//--- zamykanie przejazdu - musi byc podpiete jako event1 do torow (z kazdego kierunku) daleko przed przejazdem 
event (p1)_zamykaj multiple 0.0 (p1)_state (p1)R_slow (p1)L_slow (p1)R_stop (p1)L_stop (p1)_zamkniety condition memcompare otwarty * * endevent

//---otwieranie przejazdu - zdarzenia musza byc podpiete jako event1 do torow tuz za przejazdem (dla kazdego kierunku)
event (p7):free multiple 5.0 none (p1)R_go (p1)L_go endevent
event (p1)_otwieraj multiple 5.0 none (p1)R_go (p1)L_go (p1)_otwarty endevent

rotate 0 0 0
endorigin
