Oj, chyba jest.
A poza tym można samemu zrobić, np. tak:
SS4zcpbIW24.inc
// semafor 4-komorowy: p1=nazwa p2,p3,p4=lokacja, p5=rotacja p6=symbol
// semafor ten jest stosowany na ogol na torach wyjazdowych
origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora 4komorowego:
node -1 0 (p1) model 0 0 0 0 PKP/head4-gryw.t3d (p6) Lights 0 1 0 0 endmodel //glowica
node -1 0 none model 0 0 0 0 PKP/post-straight.t3d PKP/pkplight_manpost.tga endmodel //slup
node -1 0 none model 0 0 0 0 PKP/post-ladder-h34.t3d PKP/#pkplight_board.tga endmodel //drabinka
node -1 0 (p1)W24 model 0 0 0 0 PKP/W24.t3d none Lights 0 endmodel //wskaznik w24
node 800 50 none lines 100 50 20 100.0 //linia zeby byl maszt widoczny z daleka
0.0 0.0 0.0 0.0 4.5 0.0
endline
rotate 0 0 0
endorigin
//ZDARZENIA:
//odczyt z pamieci (zdarzenie przypisane do toru przy ktorym stoi semafor):
event (p1)_sem_info getvalues 5.0 (p1)_sem_mem endevent
//stany semafora:
event (p1)_s1 multiple 0 none (p1)_sem_ligh1 (p1)_sem_info_stop endevent
event (p1)_s2 multiple 0 none (p1)_sem_ligh2 (p1)_sem_info_vmax (p1)_sem_distinfo_vmax endevent
event (p1)_s10 multiple 0 none (p1)_sem_ligh10 (p1)_sem_info_v40 (p1)_sem_distinfo_vmax endevent
event (p1)_ms2 multiple 0 none (p1)_sem_lighs2 (p1)_sem_info_shunt2 endevent
event (p1)_sz1 multiple 0 none (p1)_sem_lighz1 (p1)_sem_info_v20 endevent
//podswietlanie wskaznika W24:
event (p1)_W24 lights 0.0 (p1)W24 1 endevent
//gaszenie wskaznika W24
event (p1)_W24off lights 0.0 (p1)W24 0 endevent
//powyzsze zdarzenia skladaja sie z:
//memcell do pamietania predkosci:
node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetVelocity 0.0 0.0 none endmemcell
//zdarzenia wpisujace w memcell predkosci przy tym (info) i przy nastepnym (distinfo) semaforze:
event (p1)_sem_info_stop updatevalues 0.0 (p1)_sem_mem SetVelocity 0.0 0.0 endevent
event (p1)_sem_distinfo_stop updatevalues 0.0 (p1)_sem_mem SetVelocity * 0.0 endevent
event (p1)_sem_info_vmax updatevalues 1.0 (p1)_sem_mem SetVelocity -1 * endevent
event (p1)_sem_distinfo_vmax updatevalues 0.0 (p1)_sem_mem SetVelocity * -1 endevent
event (p1)_sem_info_v40 updatevalues 1.0 (p1)_sem_mem SetVelocity 40 * endevent
event (p1)_sem_info_v20 updatevalues 1.0 (p1)_sem_mem SetVelocity 20 0 endevent
// dziala tylko na pojazdy w trybie manewrowym:
event (p1)_sem_info_shunt2 updatevalues 1.0 (p1)_sem_mem ShuntVelocity 40 0 endevent
//zdarzenia sterujace swiatlami:
event (p1)_sem_ligh1 lights 0.0 (p1) 0 1 0 0 endevent
event (p1)_sem_ligh2 lights 0.0 (p1) 1 0 0 0 endevent
event (p1)_sem_ligh10 lights 0.0 (p1) 1 0 1 0 endevent
event (p1)_sem_lighs2 lights 0.0 (p1) 0 0 0 1 endevent
event (p1)_sem_lighz1 lights 0.0 (p1) 0 1 0 2 endevent
tu dodać, tu odjąć, coś skopiować, powycinać, wyedytować i już mamy kolejny semafor