41 lines
816 B
GDScript
41 lines
816 B
GDScript
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
|