class_name Jet extends Node3D var ALLIES_SIDE: EaglePlus = EaglePlus.new() var AXIS_SIDE: SakerFalcon = SakerFalcon.new() @export_enum("CPU:0", "PLAYER:1") var control_mode: int = JetController.CPU_MODE @export_enum("Allies:0", "Axis:1") var CONFLICT_SIDE: int = ALLIES_SIDE.CONFLICT_SIDE const JET_MODEL: Dictionary = { ALLIES_SIDE.CONFLICT_SIDE: ALLIES_SIDE.MODEL, AXIS_SIDE.CONFLICT_SIDE: AXIS_SIDE.MODEL } @onready var camera: Camera3D = $camera @onready var controller: JetController = $controller func _ready() -> void: _load_jet(CONFLICT_SIDE) if JetController.CPU_MODE == control_mode: set_as_cpu() elif JetController.PLAYER_MODE == control_mode: set_as_player() func _process(delta: float) -> void: var action = controller.process(delta) if not action: return #func _physics_process(delta: float) -> void: #var action = controller.physics_process(delta) #if not action: return #func _unhandled_input(event: InputEvent) -> void: #var action = controller.unhandled_input(event) #if not action: return func _load_jet(type: int = CONFLICT_SIDE): add_child( JET_MODEL[type].instantiate() ) func set_as_player(): camera.current = true controller.control_mode = controller.PLAYER_MODE func set_as_cpu(): camera.current = false controller.control_mode = controller.CPU_MODE