refactor(*): Restructure game into reusable Arena/GameMode architecture with controller-driven ships, adding Free Play and Match modes

This commit is contained in:
Josh Creek
2026-07-18 15:34:11 +01:00
parent 14a8907038
commit 328831df1f
46 changed files with 664 additions and 406 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
bounce = 0.8
friction = 0.3
[node name="Ball" type="RigidBody3D"]
[node name="Ball" type="RigidBody3D" groups=["ball"]]
mass = 3
physics_material_override = SubResource("PhysicsMaterial_ball")
inertia = Vector3(3, 3, 3)
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=5 format=3 uid="uid://cofdcxo5170rs"]
[ext_resource type="Script" path="res://scripts/goal2.gd" id="1_v8ikr"]
[ext_resource type="Script" path="res://scripts/goal.gd" id="1_v8ikr"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ptddx"]
transparency = 1
+7 -8
View File
@@ -1,7 +1,10 @@
[gd_scene load_steps=5 format=3 uid="uid://p07epxnh8wwp"]
[ext_resource type="Script" uid="uid://dyq1n7q1bqjps" path="res://scripts/ship.gd" id="1_efag7"]
[ext_resource type="PackedScene" uid="uid://c8kak2l3m4n5" path="res://scenes/HUD.tscn" id="2_hud_scene"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ship"]
friction = 0.1
bounce = 0.2
[sub_resource type="BoxMesh" id="BoxMesh_efag7"]
size = Vector3(1, 1, 4)
@@ -10,8 +13,9 @@ size = Vector3(1, 1, 4)
size = Vector3(1, 1, 4)
[node name="Ship" type="RigidBody3D"]
mass = 10.0
gravity_scale = 10.0
mass = 5.0
physics_material_override = SubResource("PhysicsMaterial_ship")
inertia = Vector3(1, 1, 1)
script = ExtResource("1_efag7")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
@@ -19,8 +23,3 @@ mesh = SubResource("BoxMesh_efag7")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_dsjou")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.867366, 0.497671, 0, -0.497671, 0.867366, 0, 2.04336, 3.31556)
[node name="HUD" parent="." instance=ExtResource("2_hud_scene")]
-30
View File
@@ -1,30 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://dnra1buk328d"]
[ext_resource type="Script" uid="uid://byy2mu4mxdlgl" path="res://scripts/Vehicle.gd" id="1_5snef"]
[sub_resource type="BoxShape3D" id="BoxShape3D_0otfk"]
size = Vector3(0.5, 0.5, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hrmfk"]
albedo_color = Color(0.670588, 0, 0, 1)
[sub_resource type="BoxMesh" id="BoxMesh_uwum7"]
material = SubResource("StandardMaterial3D_hrmfk")
size = Vector3(0.5, 0.5, 1)
[node name="Vehicle" type="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.08165e-12, 0.5, 2)
mass = 10.0
gravity_scale = 10.0
lock_rotation = true
script = ExtResource("1_5snef")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_0otfk")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_uwum7")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, -4.68079e-16, 3.27752e-16, 3.27752e-16, 0.939693, 0.34202, -4.68079e-16, -0.34202, 0.939693, 2.08165e-12, 0.8, 1.2)
current = true