class_name SwitchElement
extends CircuitElement
## Переключатель. Замыкает или размыкает цепь.

## Текущее состояние: включён / выключен
@export var is_on: bool = false

## Сигнал при переключении
signal toggled(state: bool)


func _ready() -> void:
	element_name = "Переключатель"
	connection_points = [Vector2i(-1, 0), Vector2i(1, 0)]
	_update_state_visual()


## Переключить состояние
func toggle() -> void:
	is_on = not is_on
	_update_state_visual()
	toggled.emit(is_on)


## Визуальное отображение состояния
func _update_state_visual() -> void:
	if is_on:
		modulate = Color.GREEN
	else:
		modulate = Color(0.5, 0.5, 0.5)


## Пропускает ли ток
func conducts() -> bool:
	return is_on
