From 457de8dcaa11b1edcfb224793dfc4771115aea28 Mon Sep 17 00:00:00 2001 From: Michael Campbell Date: Thu, 30 Apr 2026 01:29:02 -0400 Subject: [PATCH] try to reduce load times --- buildings/building.scn | Bin 4226 -> 3923 bytes buildings/building_behavior.gd | 13 ++++++++--- enemies/base_enemy.tscn | 3 +-- loading_screen.gd | 14 ++++++++++++ loading_screen.gd.uid | 1 + loading_screen.tscn | 38 +++++++++++++++++++++++++++++++++ player/player.tscn | 2 +- project.godot | 2 +- 8 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 loading_screen.gd create mode 100644 loading_screen.gd.uid create mode 100644 loading_screen.tscn diff --git a/buildings/building.scn b/buildings/building.scn index 9c22f1acbdee1721bd2c6c51662e9c01ca11682d..e35978fea36730ae6ae8d5d4c56cdd21c1f58b96 100644 GIT binary patch literal 3923 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 F4FGU}DSQ9` literal 4226 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 Z{cvW9$CvE058m&*p%-EJoF6p$002~YEA;>X diff --git a/buildings/building_behavior.gd b/buildings/building_behavior.gd index 71bd411..9aa6f74 100644 --- a/buildings/building_behavior.gd +++ b/buildings/building_behavior.gd @@ -1,12 +1,19 @@ extends Node @export var shatter_scenes: Array[PackedScene] +@export var building_meshes: Array[PackedScene] +@export var building_scales: PackedVector3Array + var shatter_scene: PackedScene func _ready() -> void: - var idx := randi_range(0, %Shaker.get_child_count() - 1) - for child in %Shaker.get_children(): - child.visible = child.get_index() == idx + var idx := randi_range(0, building_meshes.size() - 1) + # for child in %Shaker.get_children(): + # child.visible = child.get_index() == idx + + var building_mesh: Node3D = building_meshes[idx].instantiate() + building_mesh.scale = building_scales[idx] + %Shaker.add_child(building_mesh) shatter_scene = shatter_scenes[idx] func _on_building_destroyed_from(global_pos: Vector3) -> void: diff --git a/enemies/base_enemy.tscn b/enemies/base_enemy.tscn index 6de018a..847d5ed 100644 --- a/enemies/base_enemy.tscn +++ b/enemies/base_enemy.tscn @@ -24,8 +24,7 @@ collision_mask = 2 [node name="Siren" type="AudioStreamPlayer3D" parent="." unique_id=2085366724] unique_name_in_owner = true stream = ExtResource("2_bfj6p") -attenuation_model = 2 -unit_size = 12.0 +unit_size = 15.0 autoplay = true max_distance = 50.0 bus = &"Police Siren" diff --git a/loading_screen.gd b/loading_screen.gd new file mode 100644 index 0000000..e61fa8b --- /dev/null +++ b/loading_screen.gd @@ -0,0 +1,14 @@ +extends Control + +const SCENE_PATH := "res://levels/level_0.tscn" + +func _ready() -> void: + assert(ResourceLoader.load_threaded_request(SCENE_PATH, "", true) == OK) + # await get_tree().process_frame + # ResourceLoader.load_threaded_get("res://levels/level_0.tscn") + # get_tree().change_scene_to_file("res://ui/title_screen/title_screen.tscn") + +func _process(_delta: float) -> void: + if ResourceLoader.load_threaded_get_status(SCENE_PATH) == ResourceLoader.THREAD_LOAD_LOADED: + print("changing scene") + get_tree().change_scene_to_file("res://ui/title_screen/title_screen.tscn") diff --git a/loading_screen.gd.uid b/loading_screen.gd.uid new file mode 100644 index 0000000..e18ef18 --- /dev/null +++ b/loading_screen.gd.uid @@ -0,0 +1 @@ +uid://c0a6hljyyj5ry diff --git a/loading_screen.tscn b/loading_screen.tscn new file mode 100644 index 0000000..ee275e7 --- /dev/null +++ b/loading_screen.tscn @@ -0,0 +1,38 @@ +[gd_scene format=3 uid="uid://ct4qxncertpx6"] + +[ext_resource type="Script" uid="uid://c0a6hljyyj5ry" path="res://loading_screen.gd" id="1_mggpi"] + +[sub_resource type="FontVariation" id="FontVariation_n71f6"] +variation_transform = Transform2D(1.01, -0.32, 0.55, 1.045, 0, 1.83) +spacing_glyph = 13 + +[node name="LoadingScreen" type="Control" unique_id=1185076605] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_mggpi") + +[node name="ColorRect" type="ColorRect" parent="." unique_id=873491002] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + +[node name="Label" type="Label" parent="." unique_id=1034363801] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_fonts/font = SubResource("FontVariation_n71f6") +theme_override_font_sizes/font_size = 98 +text = "Loading" +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/player/player.tscn b/player/player.tscn index 8fb47cb..6e8e68c 100644 --- a/player/player.tscn +++ b/player/player.tscn @@ -338,7 +338,7 @@ bus = &"SFX" [node name="EngineSFX" type="AudioStreamPlayer" parent="." unique_id=668897298] unique_name_in_owner = true stream = ExtResource("15_wodsf") -volume_db = -6.0 +volume_db = -8.0 bus = &"SFX" [editable path="Tank"] diff --git a/project.godot b/project.godot index 0f7e71a..ea20929 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Road Rage Tank" -run/main_scene="uid://c04ppsrjrkxb6" +run/main_scene="uid://ct4qxncertpx6" config/features=PackedStringArray("4.6") config/icon="res://icon.svg"