Files
chaussette.sale/urban_furnitures/semaphores/semaphore.gd
2025-02-26 18:14:46 +01:00

34 lines
838 B
GDScript

extends Node2D
class_name LightSemaphore
@export var synchronizedSemaphore : LightSemaphore = null
@export var hasOwnTimerEnabled = true
@onready var lights := [$Sempahore/green, $Sempahore/yellow, $Sempahore/red ];
@export var waitTicks := [5, 1, 6];
@export var light = 0;
var tickCounter = 0
func _ready() -> void:
$brakeZone.get_child(1).disabled = !light;
for i in range (lights.size()):
lights[i].visible = i == light
$Timer.wait_time = 1;
func tick():
tickCounter+=1
if tickCounter == waitTicks[light]:
light += 1;
if light > 2:
light = 0;
tickCounter = 0;
$brakeZone.get_child(1).disabled = !light;
for i in range (lights.size()):
lights[i].visible = i == light
if synchronizedSemaphore:
synchronizedSemaphore.tick();
func _on_timer_timeout() -> void:
if hasOwnTimerEnabled:
$Timer.start()
tick();