Files
GrowlerFury/scripts/controllers/spawn_system/spawn_controller.gd
T

41 lines
816 B
GDScript
Raw Normal View History

class_name SpawnController extends Node
@export var jet_factory: JetFactory
func _ready() -> void:
spawn_sides()
func spawn_sides() -> void:
spawn_allies_jet()
spawn_axis_jet()
func spawn_neutral_jet():
var _jet = spawn_jet(
Globals.Faction.NEUTRAL, jet_factory.create_cpu_jet
)
func spawn_allies_jet():
var _jet = spawn_jet(
Globals.Faction.ALLIES, jet_factory.create_cpu_jet
)
func spawn_axis_jet():
var _jet = spawn_jet(
Globals.Faction.AXIS, jet_factory.create_cpu_jet
)
func spawn_jet(faction: Globals.Faction, callback: Callable) -> Jet:
var jet: Jet = null
for spawner: Spawner in get_children():
if not spawner.faction == faction: continue
if not spawner.is_available: continue
jet = callback.call(faction)
spawner.align_to_position.call_deferred(jet)
return jet