38 lines
927 B
GDScript
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
|