58 lines
1.2 KiB
GDScript
58 lines
1.2 KiB
GDScript
class_name JetFactory extends Node
|
|
|
|
|
|
const JET = preload("res://scenes/jet.tscn")
|
|
|
|
var ALLIES_JET: EaglePlus = EaglePlus.new()
|
|
var AXIS_JET: SakerFalcon = SakerFalcon.new()
|
|
var NEUTRAL_JET: EaglePlus = EaglePlus.new()
|
|
|
|
|
|
func _ready() -> void:
|
|
pass
|
|
|
|
func _get_jet_type(faction: int) -> Jet:
|
|
if faction == Globals.FACTION.ALLIES:
|
|
return create_allies_jet()
|
|
if faction == Globals.FACTION.AXIS:
|
|
return create_axis_jet()
|
|
if faction == Globals.FACTION.NEUTRAL:
|
|
return create_neutral_jet()
|
|
|
|
return create_neutral_jet()
|
|
|
|
|
|
func create_player_jet(faction: int = 0) -> Jet:
|
|
var jet: Jet = _get_jet_type(faction)
|
|
|
|
get_tree().root.add_child.call_deferred(jet)
|
|
await jet.ready
|
|
|
|
jet.set_as_player()
|
|
return jet
|
|
|
|
func create_cpu_jet(faction: int = 0) -> Jet:
|
|
var jet = _get_jet_type(faction)
|
|
|
|
get_tree().root.add_child.call_deferred(jet)
|
|
await jet.ready
|
|
|
|
jet.set_as_cpu()
|
|
return jet
|
|
|
|
|
|
func create_neutral_jet() -> Jet:
|
|
var jet = JET.new()
|
|
jet.add_child( NEUTRAL_JET.MODEL.instantiate() )
|
|
return jet
|
|
|
|
func create_allies_jet() -> Jet:
|
|
var jet = JET.instantiate()
|
|
jet.add_child( ALLIES_JET.MODEL.instantiate() )
|
|
return jet
|
|
|
|
func create_axis_jet() -> Jet:
|
|
var jet = JET.instantiate()
|
|
jet.add_child( AXIS_JET.MODEL.instantiate() )
|
|
return jet
|