SchildDerStaerke/scripts/spawn_point.gd

38 lines
927 B
GDScript

class_name SpawnPoint
extends Node3D
var _is_occupied: bool = false
var _enemy: Enemy = null
@export var is_occupied: bool:
get:
return _is_occupied
set(value):
_is_occupied = value
@export var enemy: Enemy:
get:
return _enemy
set(value):
if _enemy == value:
return
# Vorherige Verbindung lösen, falls vorhanden
if _enemy and _enemy.state_changed.is_connected(_on_enemy_state_changed):
_enemy.state_changed.disconnect(_on_enemy_state_changed)
_enemy = value
if _enemy:
# Neue Verbindung herstellen, doppelte Verbindungen vermeiden
if not _enemy.state_changed.is_connected(_on_enemy_state_changed):
_enemy.state_changed.connect(_on_enemy_state_changed)
_is_occupied = true
else:
_is_occupied = false
func _on_enemy_state_changed(old_state: Unit.States, new_state: Unit.States) -> void:
if old_state == Unit.States.idle and new_state != Unit.States.idle:
enemy = null