diff --git a/game.tscn b/game.tscn index 61c4af2..ff45a52 100644 --- a/game.tscn +++ b/game.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://cx5ewmp2xcuia"] +[gd_scene load_steps=4 format=3 uid="uid://cx5ewmp2xcuia"] [ext_resource type="PackedScene" uid="uid://bhjfvc7gkrvah" path="res://base_environment.tscn" id="1_80nbo"] [ext_resource type="PackedScene" uid="uid://dk32bn35qku60" path="res://scripts/factories/jet_factory.tscn" id="2_e2o6t"] +[ext_resource type="PackedScene" uid="uid://nlwfoq6opqck" path="res://scripts/game_modes/game_mode.tscn" id="3_fc0e3"] [node name="game" type="Node3D"] @@ -11,3 +12,6 @@ current = true [node name="jet_factory" parent="." instance=ExtResource("2_e2o6t")] + +[node name="game_mode" parent="." node_paths=PackedStringArray("jetFactory") instance=ExtResource("3_fc0e3")] +jetFactory = NodePath("../jet_factory") diff --git a/scenes/jet.gd b/scenes/jet.gd index 7f662aa..8219af8 100644 --- a/scenes/jet.gd +++ b/scenes/jet.gd @@ -10,9 +10,6 @@ class_name Jet extends Node3D func _ready() -> void: - print("Jet ready: ", is_node_ready()) - print("Camera: ", camera) - pass func _process(delta: float) -> void: @@ -31,8 +28,6 @@ func set_model(model: Node): add_child(model) func set_as_player(): - print("Setting player. Ready: ", is_node_ready()) - print("Camera reference: ", camera) camera.current = true controller.control_mode = controller.PLAYER_MODE diff --git a/scenes/jet.tscn b/scenes/jet.tscn index 799fe9f..18524ec 100644 --- a/scenes/jet.tscn +++ b/scenes/jet.tscn @@ -1,12 +1,10 @@ [gd_scene load_steps=3 format=3 uid="uid://mtfp7066molc"] [ext_resource type="Script" uid="uid://be64wnjbfhnhh" path="res://scenes/jet.gd" id="1_l0pwp"] -[ext_resource type="PackedScene" uid="uid://b5btmjvj2gosl" path="res://scripts/control_modes/jet_controller.tscn" id="2_t5v3o"] +[ext_resource type="PackedScene" uid="uid://b5btmjvj2gosl" path="res://scripts/jet_controls/controller.tscn" id="2_t5v3o"] [node name="jet" type="Node3D"] script = ExtResource("1_l0pwp") -control_mode = null -CONFLICT_SIDE = null [node name="camera" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 120, 350) diff --git a/scripts/control_modes/jet_controller.tscn b/scripts/control_modes/jet_controller.tscn deleted file mode 100644 index cbd26f8..0000000 --- a/scripts/control_modes/jet_controller.tscn +++ /dev/null @@ -1,12 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://b5btmjvj2gosl"] - -[ext_resource type="Script" uid="uid://d2hwj8lth1mmo" path="res://scripts/control_modes/jet_controller.gd" id="1_chekb"] -[ext_resource type="PackedScene" uid="uid://baiynrn3xqvqh" path="res://scripts/control_modes/cpu.tscn" id="2_xyvvi"] -[ext_resource type="PackedScene" uid="uid://87s4f2f202g2" path="res://scripts/control_modes/player.tscn" id="3_c27ir"] - -[node name="jet_controller" type="Node"] -script = ExtResource("1_chekb") - -[node name="cpu" parent="." instance=ExtResource("2_xyvvi")] - -[node name="player" parent="." instance=ExtResource("3_c27ir")] diff --git a/scripts/factories/jet_factory.gd b/scripts/factories/jet_factory.gd index fb6cb8f..836f3f5 100644 --- a/scripts/factories/jet_factory.gd +++ b/scripts/factories/jet_factory.gd @@ -25,21 +25,17 @@ func _get_jet_type(faction: int) -> Jet: func create_player_jet(faction: int = 0) -> Jet: var jet: Jet = _get_jet_type(faction) - get_tree().root.add_child(jet) - print("1") - await get_tree().process_frame - await get_tree().process_frame - await get_tree().process_frame - await get_tree().process_frame - print("2") + 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(jet) - await get_tree().process_frame + get_tree().root.add_child.call_deferred(jet) + await jet.ready jet.set_as_cpu() return jet diff --git a/scripts/game_modes/base_game_mode.gd b/scripts/game_modes/base_game_mode.gd new file mode 100644 index 0000000..df2b707 --- /dev/null +++ b/scripts/game_modes/base_game_mode.gd @@ -0,0 +1 @@ +class_name BaseGameMode extends Node diff --git a/scripts/game_modes/base_game_mode.gd.uid b/scripts/game_modes/base_game_mode.gd.uid new file mode 100644 index 0000000..440880a --- /dev/null +++ b/scripts/game_modes/base_game_mode.gd.uid @@ -0,0 +1 @@ +uid://bkove4hhspua4 diff --git a/scripts/game_modes/dog_fight.gd b/scripts/game_modes/dog_fight.gd new file mode 100644 index 0000000..654e5fe --- /dev/null +++ b/scripts/game_modes/dog_fight.gd @@ -0,0 +1 @@ +class_name DogFight extends BaseGameMode diff --git a/scripts/game_modes/dog_fight.gd.uid b/scripts/game_modes/dog_fight.gd.uid new file mode 100644 index 0000000..77e1b94 --- /dev/null +++ b/scripts/game_modes/dog_fight.gd.uid @@ -0,0 +1 @@ +uid://bkbfu1tsd611m diff --git a/scripts/game_modes/dog_fight_waves.gd b/scripts/game_modes/dog_fight_waves.gd new file mode 100644 index 0000000..9994cfe --- /dev/null +++ b/scripts/game_modes/dog_fight_waves.gd @@ -0,0 +1 @@ +class_name DogFightWaves extends BaseGameMode diff --git a/scripts/game_modes/dog_fight_waves.gd.uid b/scripts/game_modes/dog_fight_waves.gd.uid new file mode 100644 index 0000000..8e1cb2c --- /dev/null +++ b/scripts/game_modes/dog_fight_waves.gd.uid @@ -0,0 +1 @@ +uid://qo3ajsysrh4c diff --git a/scripts/game_modes/game_mode.gd b/scripts/game_modes/game_mode.gd new file mode 100644 index 0000000..505c114 --- /dev/null +++ b/scripts/game_modes/game_mode.gd @@ -0,0 +1,19 @@ +class_name GameMode extends Node + + +const MODES: Dictionary = { + 0: preload("res://scripts/game_modes/dog_fight.gd"), + 1: preload("res://scripts/game_modes/dog_fight_waves.gd") +} + +@export_enum( + "Dog Fight:0", + "Dog Fight Waves:1" +) var mode: int = 0 + +@export var jetFactory: JetFactory + + +func _ready() -> void: + #MODES[mode].instantiate() + jetFactory.create_player_jet(Globals.FACTION.ALLIES) diff --git a/scripts/game_modes/game_mode.gd.uid b/scripts/game_modes/game_mode.gd.uid new file mode 100644 index 0000000..7cfc4be --- /dev/null +++ b/scripts/game_modes/game_mode.gd.uid @@ -0,0 +1 @@ +uid://dwkkrl7unxqau diff --git a/scripts/game_modes/game_mode.tscn b/scripts/game_modes/game_mode.tscn new file mode 100644 index 0000000..53f67da --- /dev/null +++ b/scripts/game_modes/game_mode.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://nlwfoq6opqck"] + +[ext_resource type="Script" uid="uid://dwkkrl7unxqau" path="res://scripts/game_modes/game_mode.gd" id="1_7wd16"] + +[node name="game_mode" type="Node"] +script = ExtResource("1_7wd16") diff --git a/scripts/control_modes/jet_controller.gd b/scripts/jet_controls/controller.gd similarity index 100% rename from scripts/control_modes/jet_controller.gd rename to scripts/jet_controls/controller.gd diff --git a/scripts/control_modes/jet_controller.gd.uid b/scripts/jet_controls/controller.gd.uid similarity index 100% rename from scripts/control_modes/jet_controller.gd.uid rename to scripts/jet_controls/controller.gd.uid diff --git a/scripts/jet_controls/controller.tscn b/scripts/jet_controls/controller.tscn new file mode 100644 index 0000000..b3bb734 --- /dev/null +++ b/scripts/jet_controls/controller.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=4 format=3 uid="uid://b5btmjvj2gosl"] + +[ext_resource type="Script" uid="uid://d2hwj8lth1mmo" path="res://scripts/jet_controls/controller.gd" id="1_ontwn"] +[ext_resource type="PackedScene" uid="uid://baiynrn3xqvqh" path="res://scripts/jet_controls/cpu.tscn" id="2_nsdyw"] +[ext_resource type="PackedScene" uid="uid://87s4f2f202g2" path="res://scripts/jet_controls/player.tscn" id="3_qj8xu"] + +[node name="controller" type="Node"] +script = ExtResource("1_ontwn") + +[node name="cpu" parent="." instance=ExtResource("2_nsdyw")] + +[node name="player" parent="." instance=ExtResource("3_qj8xu")] diff --git a/scripts/control_modes/cpu.gd b/scripts/jet_controls/cpu.gd similarity index 100% rename from scripts/control_modes/cpu.gd rename to scripts/jet_controls/cpu.gd diff --git a/scripts/control_modes/cpu.gd.uid b/scripts/jet_controls/cpu.gd.uid similarity index 100% rename from scripts/control_modes/cpu.gd.uid rename to scripts/jet_controls/cpu.gd.uid diff --git a/scripts/control_modes/cpu.tscn b/scripts/jet_controls/cpu.tscn similarity index 80% rename from scripts/control_modes/cpu.tscn rename to scripts/jet_controls/cpu.tscn index b3e6f9c..39fa872 100644 --- a/scripts/control_modes/cpu.tscn +++ b/scripts/jet_controls/cpu.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://baiynrn3xqvqh"] -[ext_resource type="Script" uid="uid://co4w1q06mtmjx" path="res://scripts/control_modes/cpu.gd" id="1_72ynb"] +[ext_resource type="Script" uid="uid://co4w1q06mtmjx" path="res://scripts/jet_controls/cpu.gd" id="1_72ynb"] [node name="cpu" type="Node"] script = ExtResource("1_72ynb") diff --git a/scripts/control_modes/player.gd b/scripts/jet_controls/player.gd similarity index 100% rename from scripts/control_modes/player.gd rename to scripts/jet_controls/player.gd diff --git a/scripts/control_modes/player.gd.uid b/scripts/jet_controls/player.gd.uid similarity index 100% rename from scripts/control_modes/player.gd.uid rename to scripts/jet_controls/player.gd.uid diff --git a/scripts/control_modes/player.tscn b/scripts/jet_controls/player.tscn similarity index 79% rename from scripts/control_modes/player.tscn rename to scripts/jet_controls/player.tscn index a449a4c..fd0336b 100644 --- a/scripts/control_modes/player.tscn +++ b/scripts/jet_controls/player.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://87s4f2f202g2"] -[ext_resource type="Script" uid="uid://bbugo3nlb76k7" path="res://scripts/control_modes/player.gd" id="1_3256j"] +[ext_resource type="Script" uid="uid://bbugo3nlb76k7" path="res://scripts/jet_controls/player.gd" id="1_3256j"] [node name="player" type="Node"] script = ExtResource("1_3256j")