From 3de9f0d428a8e9c4760f3c9146ac97013155ccf0 Mon Sep 17 00:00:00 2001 From: superhighlevel Date: Sun, 26 Oct 2025 12:54:23 +0700 Subject: [PATCH 1/4] Update Tests --- addons/gdUnit4/GdUnitRunner.cfg | 192 +++++++++--------- ...ple_projectile_template_custom_homing.tres | 23 --- .../test_gdunit_pattern_composer.gd | 34 +++- .../test_pattern_composer_custom_shape.tscn | 3 +- .../test_pattern_composer_stack.tscn | 14 +- .../test_projectile_wrapper_node.tscn | 49 +---- .../test_gdunit_projectile_template.gd | 0 .../test_gdunit_projectile_template.gd.uid | 0 .../test_projectile_template_advanced.tres | 15 ++ .../test_projectile_template_advanced.tscn | 0 .../test_projectile_template_custom.tscn | 0 .../test_projectile_template_node.tscn | 0 .../test_curve2d_simple.tres | 0 .../test_projectile_custom_basic.tres | 0 .../test_projectile_custom_empty.tres | 0 .../test_projectile_node_2d_basic.tscn | 0 .../test_projectile_node_2d_complex.tscn | 0 .../test_projectile_node_2d_empty.tscn | 0 ...st_projectile_template_custom_complex.tres | 72 +------ .../test_projectile_template_node_basic.tres | 0 ...test_projectile_template_node_complex.tres | 0 .../test_projectile_template_node_empty.tres | 0 ...test_projectile_template_simple_basic.tres | 0 ...test_projectile_template_simple_empty.tres | 0 ..._projectile_template_simple_variables.tres | 0 .../test_projectile_template_simple.tscn | 0 .../test_resources/test_square_curve_2d.tres | 7 + 27 files changed, 165 insertions(+), 244 deletions(-) rename tests/{projectile_template => test_resources}/test_gdunit_projectile_template.gd (100%) rename tests/{projectile_template => test_resources}/test_gdunit_projectile_template.gd.uid (100%) create mode 100644 tests/test_resources/test_projectile_template_advanced.tres rename tests/{projectile_template => test_resources}/test_projectile_template_advanced.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_custom.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_node.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_curve2d_simple.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_custom_basic.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_custom_empty.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_node_2d_basic.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_node_2d_complex.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_node_2d_empty.tscn (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_custom_complex.tres (83%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_node_basic.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_node_complex.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_node_empty.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_simple_basic.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_simple_empty.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_resources/test_projectile_template_simple_variables.tres (100%) rename tests/{projectile_template => test_resources}/test_projectile_template_simple.tscn (100%) create mode 100644 tests/test_resources/test_square_curve_2d.tres diff --git a/addons/gdUnit4/GdUnitRunner.cfg b/addons/gdUnit4/GdUnitRunner.cfg index aae56280..fff0ce99 100644 --- a/addons/gdUnit4/GdUnitRunner.cfg +++ b/addons/gdUnit4/GdUnitRunner.cfg @@ -8,7 +8,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_single", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_single", - "guid": "2814d2a2-77b9467-08e6fd1-4f177b983f", + "guid": "f18e85ea-814f438-9b28652-40d561a7d4", "line_number": 4, "metadata": { @@ -26,8 +26,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_polygon", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_polygon", - "guid": "482a15f7-3ea4460-6a899cf-a4f662217e", - "line_number": 11, + "guid": "5a1ae57d-3049403-397d2df-46ca86db81", + "line_number": 13, "metadata": { }, @@ -44,8 +44,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_spread", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_spread", - "guid": "ec2b466c-206f4e5-c971a23-3540811faf", - "line_number": 18, + "guid": "565aa2f5-669e4d8-58a9a3f-57271cdc8c", + "line_number": 22, "metadata": { }, @@ -62,8 +62,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_stack", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_stack", - "guid": "3cf3b79d-bdcf490-8a7c4a0-143d337509", - "line_number": 25, + "guid": "50902a11-5b5a446-c93f303-98a78e3720", + "line_number": 31, "metadata": { }, @@ -80,8 +80,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_shape_2d", - "guid": "bbde565d-40354df-690dca4-264ca0f533", - "line_number": 32, + "guid": "75ec50a1-7c994a5-3898cea-e3b8e23707", + "line_number": 40, "metadata": { }, @@ -98,8 +98,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_custom_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_custom_shape_2d", - "guid": "d80b512e-3a29443-9bf8037-51d78657db", - "line_number": 39, + "guid": "61e2531c-379f4c5-3b62e61-6535c8515c", + "line_number": 49, "metadata": { }, @@ -116,8 +116,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_loop", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_loop", - "guid": "829b5b7c-343d46c-fb7c75c-e9f94d21c5", - "line_number": 46, + "guid": "a3b47928-9b314f1-db45737-79e62312e3", + "line_number": 58, "metadata": { }, @@ -134,8 +134,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_group", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_group", - "guid": "3918bc70-daa2426-4abc7b5-b3294eb458", - "line_number": 53, + "guid": "3e6c08c5-db91477-0a47d83-7dd16cd354", + "line_number": 67, "metadata": { }, @@ -145,78 +145,6 @@ "suite_resource_path": "res://tests/pattern_composer/test_gdunit_pattern_composer.gd", "test_name": "test_pattern_composer_group" }, - { - "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", - "@subpath": "", - "assembly_location": "", - "attribute_index": -1, - "display_name": "test_projectile_template_simple", - "fully_qualified_name": "tests.projectile_template.test_gdunit_projectile_template.test_projectile_template_simple", - "guid": "a2746af6-cae44db-a8c882d-7623d3e93e", - "line_number": 4, - "metadata": { - - }, - "require_godot_runtime": true, - "source_file": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "suite_name": "test_gdunit_projectile_template", - "suite_resource_path": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "test_name": "test_projectile_template_simple" - }, - { - "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", - "@subpath": "", - "assembly_location": "", - "attribute_index": -1, - "display_name": "test_projectile_template_advanced", - "fully_qualified_name": "tests.projectile_template.test_gdunit_projectile_template.test_projectile_template_advanced", - "guid": "a5f70874-69e64b4-caee482-aa25e7fb54", - "line_number": 10, - "metadata": { - - }, - "require_godot_runtime": true, - "source_file": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "suite_name": "test_gdunit_projectile_template", - "suite_resource_path": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "test_name": "test_projectile_template_advanced" - }, - { - "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", - "@subpath": "", - "assembly_location": "", - "attribute_index": -1, - "display_name": "test_projectile_template_custom", - "fully_qualified_name": "tests.projectile_template.test_gdunit_projectile_template.test_projectile_template_custom", - "guid": "8b40a631-896b490-b9af84f-396650bb77", - "line_number": 16, - "metadata": { - - }, - "require_godot_runtime": true, - "source_file": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "suite_name": "test_gdunit_projectile_template", - "suite_resource_path": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "test_name": "test_projectile_template_custom" - }, - { - "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", - "@subpath": "", - "assembly_location": "", - "attribute_index": -1, - "display_name": "test_projectile_template_node_2d", - "fully_qualified_name": "tests.projectile_template.test_gdunit_projectile_template.test_projectile_template_node_2d", - "guid": "49908348-4a19447-599042d-a49e602f93", - "line_number": 23, - "metadata": { - - }, - "require_godot_runtime": true, - "source_file": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "suite_name": "test_gdunit_projectile_template", - "suite_resource_path": "res://tests/projectile_template/test_gdunit_projectile_template.gd", - "test_name": "test_projectile_template_node_2d" - }, { "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", "@subpath": "", @@ -224,7 +152,7 @@ "attribute_index": -1, "display_name": "test_example_scene_1", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_1", - "guid": "b5380ea7-d1fe429-a816719-50dca9430d", + "guid": "c2c59205-60aa4b6-89a915f-2fec697b96", "line_number": 3, "metadata": { @@ -242,7 +170,7 @@ "attribute_index": -1, "display_name": "test_example_scene_2", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_2", - "guid": "3893b604-7b9b460-388f49b-96473c6054", + "guid": "8e4821c7-2bbb4e4-f80b561-1affd2504e", "line_number": 9, "metadata": { @@ -260,7 +188,7 @@ "attribute_index": -1, "display_name": "test_example_scene_3", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_3", - "guid": "1ee31605-b89744e-0844882-897108704f", + "guid": "73862c5a-47bc47e-593f8df-82d2206d82", "line_number": 15, "metadata": { @@ -278,7 +206,7 @@ "attribute_index": -1, "display_name": "test_example_scene_4", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_4", - "guid": "0dea66a6-ea5e4b5-3bca510-4fc6b573ca", + "guid": "88f7a00a-5aeb45e-28e7e8c-0b5c1ace69", "line_number": 21, "metadata": { @@ -296,7 +224,7 @@ "attribute_index": -1, "display_name": "test_example_scene_5", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_5", - "guid": "d80856f1-bee6417-5831aea-88392116d4", + "guid": "6871c1ec-5c034dd-9a219e2-4d7e8441fc", "line_number": 27, "metadata": { @@ -314,7 +242,7 @@ "attribute_index": -1, "display_name": "test_example_scene_6", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_6", - "guid": "c4006f68-ac31453-a8e8fa6-f11911602b", + "guid": "3163f365-1f8c421-9b77656-475d8a9916", "line_number": 33, "metadata": { @@ -343,6 +271,78 @@ "suite_resource_path": "res://tests/test_projectile_wrapper/test_projectile_wrappers.gd", "test_name": "test_projectile_template_simple" }, + { + "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", + "@subpath": "", + "assembly_location": "", + "attribute_index": -1, + "display_name": "test_projectile_template_simple", + "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_simple", + "guid": "5bde7c94-632a4df-e9aef42-f7c3e707a8", + "line_number": 4, + "metadata": { + + }, + "require_godot_runtime": true, + "source_file": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "suite_name": "test_gdunit_projectile_template", + "suite_resource_path": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "test_name": "test_projectile_template_simple" + }, + { + "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", + "@subpath": "", + "assembly_location": "", + "attribute_index": -1, + "display_name": "test_projectile_template_advanced", + "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_advanced", + "guid": "f7f32802-e11e434-59cb7f4-6c909fd3bd", + "line_number": 10, + "metadata": { + + }, + "require_godot_runtime": true, + "source_file": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "suite_name": "test_gdunit_projectile_template", + "suite_resource_path": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "test_name": "test_projectile_template_advanced" + }, + { + "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", + "@subpath": "", + "assembly_location": "", + "attribute_index": -1, + "display_name": "test_projectile_template_custom", + "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_custom", + "guid": "a16a887d-bf164e9-6911b5b-2cad100b78", + "line_number": 16, + "metadata": { + + }, + "require_godot_runtime": true, + "source_file": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "suite_name": "test_gdunit_projectile_template", + "suite_resource_path": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "test_name": "test_projectile_template_custom" + }, + { + "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", + "@subpath": "", + "assembly_location": "", + "attribute_index": -1, + "display_name": "test_projectile_template_node_2d", + "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_node_2d", + "guid": "09bf3878-fe2f487-db94642-39a8fcc2b5", + "line_number": 23, + "metadata": { + + }, + "require_godot_runtime": true, + "source_file": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "suite_name": "test_gdunit_projectile_template", + "suite_resource_path": "res://tests/test_resources/test_gdunit_projectile_template.gd", + "test_name": "test_projectile_template_node_2d" + }, { "@path": "res://addons/gdUnit4/src/core/discovery/GdUnitTestCase.gd", "@subpath": "", @@ -350,7 +350,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_cooldown", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_cooldown", - "guid": "ef9db1a4-8067428-aaec666-94d9afd6db", + "guid": "83112654-814448e-8916622-7d1dc9b94a", "line_number": 4, "metadata": { @@ -368,7 +368,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_repeater", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_repeater", - "guid": "37f24a53-8d0b477-8bd2c35-cfeab91017", + "guid": "d0b681ee-1e4b4a6-fa5b75d-a393a0454b", "line_number": 10, "metadata": { @@ -386,7 +386,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_timing_set", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_timing_set", - "guid": "04f8f302-90ca49e-88bb69c-718e3247e3", + "guid": "27a0b74b-31aa4c8-ba7775d-60a45f25a5", "line_number": 16, "metadata": { diff --git a/addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_custom_homing.tres b/addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_custom_homing.tres index 1621638d..3647de1a 100644 --- a/addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_custom_homing.tres +++ b/addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_custom_homing.tres @@ -14,33 +14,10 @@ [sub_resource type="Resource" id="Resource_m831r"] script = ExtResource("7_0r6ln") -active = true metadata/_custom_type_script = "uid://bpntc8lt06yr8" [resource] script = ExtResource("9_cv5kg") -damage = 1.0 -speed = 100.0 -projectile_pooling_amount = 500 texture = ExtResource("11_ylhvc") -scale = Vector2(1, 1) -texture_rotation = 0.0 -skew = 0.0 -texture_visible = true -texture_z_index = 0 -texture_modulate = Color(1, 1, 1, 1) -collision_layer = 0 -collision_mask = 0 -speed_projectile_behaviors = Array[ExtResource("10_kfx4j")]([]) -direction_projectile_behaviors = Array[ExtResource("3_8t5vu")]([]) rotation_projectile_behaviors = Array[ExtResource("6_43qwg")]([SubResource("Resource_m831r")]) -scale_projectile_behaviors = Array[ExtResource("8_4c65f")]([]) -destroy_projectile_behaviors = Array[ExtResource("2_uaycm")]([]) -piercing_projectile_behaviors = Array[ExtResource("5_cmhk1")]([]) -bouncing_projectile_behaviors = Array[ExtResource("1_b3dxs")]([]) -trigger_projectile_behaviors = Array[ExtResource("12_10nsj")]([]) -speed_random = Vector3(0, 0, 0) -texture_rotation_random = Vector3(0, 0, 0) -scale_random = Vector3(0, 0, 0) -custom_data = [] metadata/_custom_type_script = "uid://d3yyxyx6shhya" diff --git a/tests/pattern_composer/test_gdunit_pattern_composer.gd b/tests/pattern_composer/test_gdunit_pattern_composer.gd index d5125892..c8b38219 100644 --- a/tests/pattern_composer/test_gdunit_pattern_composer.gd +++ b/tests/pattern_composer/test_gdunit_pattern_composer.gd @@ -1,57 +1,73 @@ extends GdUnitTestSuite - +var runner : GdUnitSceneRunner func test_pattern_composer_single() -> void: - var runner := scene_runner("uid://c100r43aw5b57") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://c100r43aw5b57") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_polygon() -> void: - var runner := scene_runner("uid://dlxrdpvh8mcpu") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://dlxrdpvh8mcpu") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_spread() -> void: - var runner := scene_runner("uid://dtmk56w332se2") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://dtmk56w332se2") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_stack() -> void: - var runner := scene_runner("uid://yypoytt7an8h") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://yypoytt7an8h") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_shape_2d() -> void: - var runner := scene_runner("uid://vnh02vjautdp") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://vnh02vjautdp") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_custom_shape_2d() -> void: - var runner := scene_runner("uid://s3visbj8dq43") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://s3visbj8dq43") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() pass func test_pattern_composer_loop() -> void: - var runner := scene_runner("uid://vuaj15gpwguh") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://vuaj15gpwguh") runner._scene_auto_free = false runner.simulate_frames(5) assert_object(runner).is_not_null() pass func test_pattern_composer_group() -> void: - var runner := scene_runner("uid://crdq3kd2tjy82") + runner = null + ProjectileEngine.clear_all_projectiles() + runner = scene_runner("uid://crdq3kd2tjy82") runner.simulate_frames(5) runner._scene_auto_free = false assert_object(runner).is_not_null() diff --git a/tests/pattern_composer/test_pattern_composer_custom_shape.tscn b/tests/pattern_composer/test_pattern_composer_custom_shape.tscn index b0b1f80c..668c0a70 100644 --- a/tests/pattern_composer/test_pattern_composer_custom_shape.tscn +++ b/tests/pattern_composer/test_pattern_composer_custom_shape.tscn @@ -11,7 +11,7 @@ [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_iaaan"] [ext_resource type="Script" uid="uid://cx6esy7bqcdgd" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCCustomShape2D.gd" id="10_asdxy"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_2v6jc"] -[ext_resource type="Curve2D" uid="uid://bt8dtk3k0xac0" path="res://experiments/experiment_projectile_template/square_curve_2d.tres" id="11_asdxy"] +[ext_resource type="Curve2D" path="res://tests/test_resources/test_square_curve_2d.tres" id="11_asdxy"] [ext_resource type="Script" uid="uid://sjpvs4m6jk71" path="res://addons/godot_projectile_engine/core/timing_scheduler/repeater/tsc_repeater.gd" id="12_hbuh1"] [node name="TestPatternComposerSingle" type="Node2D"] @@ -108,7 +108,6 @@ metadata/_custom_type_script = "uid://bc73oiea731jc" [node name="PCCCustomShape2D" type="Node" parent="PatternComposer2D2"] script = ExtResource("10_asdxy") shape_path = ExtResource("11_asdxy") -point_type = 1 [node name="PatternComposer2D8" type="Node" parent="."] script = ExtResource("9_iaaan") diff --git a/tests/pattern_composer/test_pattern_composer_stack.tscn b/tests/pattern_composer/test_pattern_composer_stack.tscn index caa7bcf4..1949ad5c 100644 --- a/tests/pattern_composer/test_pattern_composer_stack.tscn +++ b/tests/pattern_composer/test_pattern_composer_stack.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_v8awa"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_twdm3"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_jt0v0"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_xldvl"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_5febv"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_00krb"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_pn7vb"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_yaktm"] +[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_jt0v0"] +[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_xldvl"] +[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_5febv"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_twdm3"] +[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_pn7vb"] +[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_yaktm"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_xodb8"] [ext_resource type="Script" uid="uid://cw3jfu53wt4vm" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCStack2D.gd" id="10_v8awa"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_4tk6e"] @@ -80,7 +80,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" position = Vector2(-3, 0) script = ExtResource("2_twdm3") projectile_composer_name = "stack_mix" -projectile_template_2d = ExtResource("6_00krb") +projectile_template_2d = ExtResource("6_twdm3") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" diff --git a/tests/test_projectile_wrapper/test_projectile_wrapper_node.tscn b/tests/test_projectile_wrapper/test_projectile_wrapper_node.tscn index 9e11af8b..d62115a6 100644 --- a/tests/test_projectile_wrapper/test_projectile_wrapper_node.tscn +++ b/tests/test_projectile_wrapper/test_projectile_wrapper_node.tscn @@ -1,44 +1,13 @@ -[gd_scene load_steps=11 format=3 uid="uid://dev1adr6m1qj"] +[gd_scene load_steps=8 format=3 uid="uid://dev1adr6m1qj"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="1_cbklj"] [ext_resource type="Script" uid="uid://cgi5wxrd3qs15" path="res://addons/godot_projectile_engine/core/projectile_wrapper/projectile_wrapper_2d.gd" id="1_o4efc"] -[ext_resource type="Script" uid="uid://dqlixqba72p5f" path="res://addons/godot_projectile_engine/core/projectile_template/projectile_template_simple_2d/projectile_template_simple_2d.gd" id="2_o4efc"] -[ext_resource type="Texture2D" uid="uid://xej5ti53m73n" path="res://addons/godot_projectile_engine/examples/assets/projectile/projectile_circle_1.png" id="3_ce42g"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="3_cbklj"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="4_iqiwu"] [ext_resource type="Script" uid="uid://co24jiat0y46s" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCSingle2D.gd" id="5_sl2hw"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="6_h3bpf"] [ext_resource type="Script" uid="uid://sjpvs4m6jk71" path="res://addons/godot_projectile_engine/core/timing_scheduler/repeater/tsc_repeater.gd" id="7_itpv4"] -[sub_resource type="CircleShape2D" id="CircleShape2D_bff2h"] - -[sub_resource type="Resource" id="Resource_ce42g"] -script = ExtResource("2_o4efc") -speed = 100.0 -projectile_pooling_amount = 500 -texture = ExtResource("3_ce42g") -scale = Vector2(1, 1) -texture_rotation = 0.0 -skew = 0.0 -texture_visible = true -texture_z_index = 0 -texture_modulate = Color(1, 1, 1, 1) -collision_shape = SubResource("CircleShape2D_bff2h") -collision_layer = 1 -collision_mask = 256 -texture_rotate_direction = false -destroy_on_body_collide = true -destroy_on_area_collide = true -life_time_second_max = 10.0 -life_distance_max = 1000.0 -speed_random = Vector3(0, 0, 0) -texture_rotation_random = Vector3(0, 0, 0) -texture_rotation_speed_random = Vector3(0, 0, 0) -scale_random = Vector3(0, 0, 0) -life_time_second_random = Vector3(0, 0, 0) -life_distance_random = Vector3(0, 0, 0) -custom_data = [] -metadata/_custom_type_script = "uid://dqlixqba72p5f" - [node name="TestProjectileWrapperNode" type="Node2D" node_paths=PackedStringArray("projectile_spawner_2d")] script = ExtResource("1_o4efc") active = true @@ -46,6 +15,13 @@ projectile_wrapper_name = "test_wrapper_node_1" projectile_spawner_2d = NodePath("ProjectileSpawner2D") metadata/_custom_type_script = "uid://cgi5wxrd3qs15" +[node name="ProjectileSpawner2D" type="Node2D" parent="." node_paths=PackedStringArray("timing_scheduler")] +script = ExtResource("1_cbklj") +projectile_composer_name = "test_wrapper_composer_1" +projectile_template_2d = ExtResource("3_cbklj") +timing_scheduler = NodePath("../TimingScheduler") +metadata/_custom_type_script = "uid://cnqgcej10tinn" + [node name="PatternComposer2D" type="Node" parent="."] script = ExtResource("4_iqiwu") composer_name = "test_wrapper_composer_1" @@ -62,10 +38,3 @@ metadata/_custom_type_script = "uid://b8nclaklcf4uu" [node name="TSCRepeater" type="Node" parent="TimingScheduler"] script = ExtResource("7_itpv4") metadata/_custom_type_script = "uid://sjpvs4m6jk71" - -[node name="ProjectileSpawner2D" type="Node2D" parent="." node_paths=PackedStringArray("timing_scheduler")] -script = ExtResource("1_cbklj") -projectile_composer_name = "test_wrapper_composer_1" -projectile_template_2d = SubResource("Resource_ce42g") -timing_scheduler = NodePath("../TimingScheduler") -metadata/_custom_type_script = "uid://cnqgcej10tinn" diff --git a/tests/projectile_template/test_gdunit_projectile_template.gd b/tests/test_resources/test_gdunit_projectile_template.gd similarity index 100% rename from tests/projectile_template/test_gdunit_projectile_template.gd rename to tests/test_resources/test_gdunit_projectile_template.gd diff --git a/tests/projectile_template/test_gdunit_projectile_template.gd.uid b/tests/test_resources/test_gdunit_projectile_template.gd.uid similarity index 100% rename from tests/projectile_template/test_gdunit_projectile_template.gd.uid rename to tests/test_resources/test_gdunit_projectile_template.gd.uid diff --git a/tests/test_resources/test_projectile_template_advanced.tres b/tests/test_resources/test_projectile_template_advanced.tres new file mode 100644 index 00000000..71c31423 --- /dev/null +++ b/tests/test_resources/test_projectile_template_advanced.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="ProjectileTemplateAdvanced2D" load_steps=4 format=3 uid="uid://d2fbngr8ph0y4"] + +[ext_resource type="Script" uid="uid://c7uapl8lqnia4" path="res://addons/godot_projectile_engine/core/projectile_template/projectile_template_advanced_2d/projectile_template_advanced_2d.gd" id="1_gwwlm"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_nn4gp"] + +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_l1xdq"] +load_path = "res://.godot/imported/projectile_rice_1.png-e5ed9c25ec737c1f670ed4b9b84a3db1.ctex" + +[resource] +script = ExtResource("1_gwwlm") +texture = SubResource("CompressedTexture2D_l1xdq") +collision_shape = SubResource("CircleShape2D_nn4gp") +steer_speed = 0.174533 +metadata/_custom_type_script = "uid://c7uapl8lqnia4" diff --git a/tests/projectile_template/test_projectile_template_advanced.tscn b/tests/test_resources/test_projectile_template_advanced.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_advanced.tscn rename to tests/test_resources/test_projectile_template_advanced.tscn diff --git a/tests/projectile_template/test_projectile_template_custom.tscn b/tests/test_resources/test_projectile_template_custom.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_custom.tscn rename to tests/test_resources/test_projectile_template_custom.tscn diff --git a/tests/projectile_template/test_projectile_template_node.tscn b/tests/test_resources/test_projectile_template_node.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_node.tscn rename to tests/test_resources/test_projectile_template_node.tscn diff --git a/tests/projectile_template/test_projectile_template_resources/test_curve2d_simple.tres b/tests/test_resources/test_projectile_template_resources/test_curve2d_simple.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_curve2d_simple.tres rename to tests/test_resources/test_projectile_template_resources/test_curve2d_simple.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_custom_empty.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_custom_empty.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_custom_empty.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_custom_empty.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_basic.tscn b/tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_basic.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_basic.tscn rename to tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_basic.tscn diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_complex.tscn b/tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_complex.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_complex.tscn rename to tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_complex.tscn diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_empty.tscn b/tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_empty.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_node_2d_empty.tscn rename to tests/test_resources/test_projectile_template_resources/test_projectile_node_2d_empty.tscn diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres similarity index 83% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres index 4d247e02..36763c93 100644 --- a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres +++ b/tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres @@ -6,13 +6,12 @@ [ext_resource type="Script" uid="uid://chtssqssdvls7" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/base/projectile_behavior_direction.gd" id="4_h4knv"] [ext_resource type="Script" uid="uid://c4vh2pal3nbnl" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/direction/behaviors/projectile_direction_modify.gd" id="5_jgvmb"] [ext_resource type="Script" uid="uid://b6mye22ih14le" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/direction/behaviors/projectile_direction_expression.gd" id="6_o217s"] -[ext_resource type="Curve2D" uid="uid://bt8dtk3k0xac0" path="res://experiments/experiment_projectile_template/square_curve_2d.tres" id="7_wqak3"] [ext_resource type="Script" uid="uid://cjtoo7n0xa5e2" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/direction/behaviors/projectile_direction_curve_2d.gd" id="8_lbcke"] [ext_resource type="Script" uid="uid://ds4xe1drkirks" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/direction/behaviors/projectile_direction_random_walk.gd" id="9_hno5m"] [ext_resource type="Script" uid="uid://f77iu3txs7r5" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/base/projectile_behavior_piercing.gd" id="10_f0fo5"] [ext_resource type="Script" uid="uid://lr7r36tmtarr" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/base/projectile_behavior_rotation.gd" id="11_iukyb"] [ext_resource type="Script" uid="uid://2ncg6dcceecr" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/rotation/behaviors/projectile_rotation_set.gd" id="12_akh50"] -[ext_resource type="Curve" uid="uid://s4g8cm3mp3nt" path="res://tests/projectile_template/test_projectile_template_resources/test_curve2d_simple.tres" id="13_8kwti"] +[ext_resource type="Curve" uid="uid://s4g8cm3mp3nt" path="res://tests/test_resources/test_projectile_template_resources/test_curve2d_simple.tres" id="13_8kwti"] [ext_resource type="Script" uid="uid://didjqd7lmis6t" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/rotation/behaviors/projectile_rotation_curve.gd" id="14_k0ccw"] [ext_resource type="Script" uid="uid://c71ywbr61cvc3" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/rotation/behaviors/projectile_rotation_expression.gd" id="15_cw384"] [ext_resource type="Script" uid="uid://ucfv3eq8fafp" path="res://addons/godot_projectile_engine/core/projectile_template/base/projectile_behaviors/rotation/behaviors/projectile_rotation_modify.gd" id="16_urcq5"] @@ -32,51 +31,36 @@ [sub_resource type="Resource" id="Resource_147qi"] script = ExtResource("3_b0kpl") -destroy_on_area_collide = true -destroy_on_body_collide = true wait_projectile_piercing = true -wait_projectile_bouncing = false -active = true metadata/_custom_type_script = "uid://bkjnay24vltjg" [sub_resource type="Resource" id="Resource_s78sl"] script = ExtResource("5_jgvmb") direction_modify_value = Vector2(-1, 0) direction_modify_method = 2 -direction_normalize = true -active = true metadata/_custom_type_script = "uid://c4vh2pal3nbnl" [sub_resource type="Resource" id="Resource_n04yf"] script = ExtResource("6_o217s") -direction_expression_sample_method = 0 direction_modify_method = 1 -expression_streght = 0.5 -direction_expression_variable = "t" direction_x_expression = "sin(t) + 2" direction_y_expression = "cos(t) + 2" -direction_normalize = true -active = true metadata/_custom_type_script = "uid://b6mye22ih14le" +[sub_resource type="Resource" id="Resource_autlm"] +metadata/__load_path__ = "res://experiments/experiment_projectile_template/square_curve_2d.tres" + [sub_resource type="Resource" id="Resource_2lb1m"] script = ExtResource("8_lbcke") -curve_2d = ExtResource("7_wqak3") -curve_strenght = 0.5 -direction_curve_sample_method = 1 +curve_2d = SubResource("Resource_autlm") direction_modify_method = 0 -direction_normalize = true -active = true metadata/_custom_type_script = "uid://cjtoo7n0xa5e2" [sub_resource type="Resource" id="Resource_41qqr"] script = ExtResource("9_hno5m") noise_strength = 0.5 noise_frequency = 0.1 -noise_seed = 0 direction_modify_method = 1 -direction_normalize = true -active = true metadata/_custom_type_script = "uid://ds4xe1drkirks" [sub_resource type="Resource" id="Resource_smfuh"] @@ -84,118 +68,72 @@ script = ExtResource("10_f0fo5") piercing_count = 1 pierce_area = true pierce_area_layer = 256 -pierce_body = false -pierce_body_layer = 0 -active = true metadata/_custom_type_script = "uid://f77iu3txs7r5" [sub_resource type="Resource" id="Resource_mb3tj"] script = ExtResource("12_akh50") rotation_value = 42.0 -active = true metadata/_custom_type_script = "uid://2ncg6dcceecr" [sub_resource type="Resource" id="Resource_08sl7"] script = ExtResource("14_k0ccw") -rotation_modify_method = 0 -rotation_process_mode = 1 -rotation_curve_loop_method = 0 -rotation_curve_sample_method = 0 rotation_curve = ExtResource("13_8kwti") -active = true metadata/_custom_type_script = "uid://didjqd7lmis6t" [sub_resource type="Resource" id="Resource_h6whu"] script = ExtResource("15_cw384") -rotation_expression_sample_method = 0 rotation_modify_method = 1 -rotation_process_mode = 1 -rotation_expression_variable = "t" rotation_expression = "sin(t)" -active = true metadata/_custom_type_script = "uid://c71ywbr61cvc3" [sub_resource type="Resource" id="Resource_523xv"] script = ExtResource("16_urcq5") rotation_modify_value = -10.0 -rotation_process_mode = 1 -rotation_modify_method = 0 -active = true metadata/_custom_type_script = "uid://ucfv3eq8fafp" [sub_resource type="Resource" id="Resource_fiy2d"] script = ExtResource("26_0lhk8") speed_value = 100.0 -active = true metadata/_custom_type_script = "uid://ospvxnky04he" [sub_resource type="Resource" id="Resource_q6qyn"] script = ExtResource("27_w87vn") acceleration_speed = 10.0 max_speed = 300.0 -active = true metadata/_custom_type_script = "uid://d35n2jogawdcq" [sub_resource type="Resource" id="Resource_0k070"] script = ExtResource("28_ekg8i") speed_modify_method = 3 -speed_process_mode = 0 -speed_curve_loop_method = 0 -speed_curve_sample_method = 0 speed_curve = ExtResource("13_8kwti") -active = true metadata/_custom_type_script = "uid://bnautbd467qq2" [sub_resource type="Resource" id="Resource_pxrv5"] script = ExtResource("29_tngv5") speed_modify_value = 20.0 -speed_process_mode = 0 speed_modify_method = 1 -active = true metadata/_custom_type_script = "uid://cjan1hd6214vl" [sub_resource type="Resource" id="Resource_yumop"] script = ExtResource("30_gnmqu") -speed_expression_sample_method = 0 speed_modify_method = 1 -speed_process_mode = 0 -speed_expression_variable = "t" speed_expression = "t + 1" -active = true metadata/_custom_type_script = "uid://dkm0o1v05i58y" [sub_resource type="Resource" id="Resource_vq1eq"] script = ExtResource("31_y3s5n") max_value = 600.0 -min_value = -300.0 -active = true metadata/_custom_type_script = "uid://chmjku6lmvmaq" [resource] script = ExtResource("24_uq5xw") -damage = 1.0 -speed = 100.0 -projectile_pooling_amount = 500 texture = ExtResource("32_l3jnm") -scale = Vector2(1, 1) -texture_rotation = 0.0 -skew = 0.0 -texture_visible = true -texture_z_index = 0 -texture_modulate = Color(1, 1, 1, 1) collision_shape = SubResource("RectangleShape2D_ijeta") collision_layer = 1 collision_mask = 256 speed_projectile_behaviors = Array[ExtResource("25_hpayo")]([SubResource("Resource_fiy2d"), SubResource("Resource_q6qyn"), SubResource("Resource_0k070"), SubResource("Resource_pxrv5"), SubResource("Resource_yumop"), SubResource("Resource_vq1eq")]) direction_projectile_behaviors = Array[ExtResource("4_h4knv")]([SubResource("Resource_s78sl"), SubResource("Resource_n04yf"), SubResource("Resource_2lb1m"), SubResource("Resource_41qqr")]) rotation_projectile_behaviors = Array[ExtResource("11_iukyb")]([SubResource("Resource_mb3tj"), SubResource("Resource_08sl7"), SubResource("Resource_h6whu"), SubResource("Resource_523xv")]) -scale_projectile_behaviors = Array[ExtResource("17_7j1sc")]([]) destroy_projectile_behaviors = Array[ExtResource("2_gxq5l")]([SubResource("Resource_147qi")]) piercing_projectile_behaviors = Array[ExtResource("10_f0fo5")]([SubResource("Resource_smfuh")]) -bouncing_projectile_behaviors = Array[ExtResource("1_6223l")]([]) -trigger_projectile_behaviors = Array[ExtResource("33_nj4cj")]([]) -speed_random = Vector3(0, 0, 0) -texture_rotation_random = Vector3(0, 0, 0) -scale_random = Vector3(0, 0, 0) -custom_data = [] metadata/_custom_type_script = "uid://d3yyxyx6shhya" diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_empty.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_node_empty.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_empty.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_node_empty.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_empty.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_empty.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_empty.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_empty.tres diff --git a/tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_variables.tres b/tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_variables.tres similarity index 100% rename from tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_variables.tres rename to tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_variables.tres diff --git a/tests/projectile_template/test_projectile_template_simple.tscn b/tests/test_resources/test_projectile_template_simple.tscn similarity index 100% rename from tests/projectile_template/test_projectile_template_simple.tscn rename to tests/test_resources/test_projectile_template_simple.tscn diff --git a/tests/test_resources/test_square_curve_2d.tres b/tests/test_resources/test_square_curve_2d.tres new file mode 100644 index 00000000..4df40899 --- /dev/null +++ b/tests/test_resources/test_square_curve_2d.tres @@ -0,0 +1,7 @@ +[gd_resource type="Curve2D" load_steps=0 format=3 uid="uid://bt8dtk3k0xac0"] + +[resource] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0) +} +point_count = 5 From 38bb0f7dcea3398606a071c940f0272c6655fd3a Mon Sep 17 00:00:00 2001 From: superhighlevel Date: Sun, 26 Oct 2025 13:52:56 +0700 Subject: [PATCH 2/4] Update tests --- addons/gdUnit4/GdUnitRunner.cfg | 70 +++++++++---------- .../GodotProjectileEngine.gd | 7 +- .../projectile_spawner/projectile_spawner.gd | 12 +++- .../scenes/example_1_first_pattern.tscn | 23 +----- project.godot | 5 ++ .../test_gdunit_pattern_composer.gd | 48 ++++++------- .../test_pattern_composer_custom_shape.tscn | 16 ++--- .../test_pattern_composer_group.tscn | 15 ++-- .../test_pattern_composer_loop.tscn | 15 ++-- .../test_pattern_composer_shape_2d.tscn | 14 ++-- .../test_pattern_composer_single.tscn | 14 ++-- .../test_pattern_composer_spread.tscn | 19 +++-- .../test_pattern_composer_stack.tscn | 10 +-- .../test_example_scenes.gd | 52 +++++++++----- .../test_projectile_wrappers.gd | 2 +- .../test_gdunit_projectile_template.gd | 8 +-- .../test_gdunit_timing_scheduler.gd | 6 +- 17 files changed, 171 insertions(+), 165 deletions(-) diff --git a/addons/gdUnit4/GdUnitRunner.cfg b/addons/gdUnit4/GdUnitRunner.cfg index fff0ce99..0ce4c4c4 100644 --- a/addons/gdUnit4/GdUnitRunner.cfg +++ b/addons/gdUnit4/GdUnitRunner.cfg @@ -8,8 +8,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_single", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_single", - "guid": "f18e85ea-814f438-9b28652-40d561a7d4", - "line_number": 4, + "guid": "9b2703fc-d4b14b0-1a587af-5ebdb9fc5a", + "line_number": 5, "metadata": { }, @@ -26,7 +26,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_polygon", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_polygon", - "guid": "5a1ae57d-3049403-397d2df-46ca86db81", + "guid": "207f89a2-163c419-2906ee8-6779353729", "line_number": 13, "metadata": { @@ -44,8 +44,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_spread", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_spread", - "guid": "565aa2f5-669e4d8-58a9a3f-57271cdc8c", - "line_number": 22, + "guid": "1c1a6975-bc664b7-087c1b7-8768ae59e7", + "line_number": 21, "metadata": { }, @@ -62,8 +62,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_stack", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_stack", - "guid": "50902a11-5b5a446-c93f303-98a78e3720", - "line_number": 31, + "guid": "ffaba550-694a419-7ae91d1-b1af2a697c", + "line_number": 29, "metadata": { }, @@ -80,8 +80,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_shape_2d", - "guid": "75ec50a1-7c994a5-3898cea-e3b8e23707", - "line_number": 40, + "guid": "3e976523-ebcf472-d8e6058-3c08f8ba4c", + "line_number": 37, "metadata": { }, @@ -98,8 +98,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_custom_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_custom_shape_2d", - "guid": "61e2531c-379f4c5-3b62e61-6535c8515c", - "line_number": 49, + "guid": "ee0bcc74-05a64ee-c9818c3-790c1a6ec6", + "line_number": 46, "metadata": { }, @@ -116,8 +116,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_loop", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_loop", - "guid": "a3b47928-9b314f1-db45737-79e62312e3", - "line_number": 58, + "guid": "6de6038e-877d470-fac00cf-c0027c2699", + "line_number": 55, "metadata": { }, @@ -134,8 +134,8 @@ "attribute_index": -1, "display_name": "test_pattern_composer_group", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_group", - "guid": "3e6c08c5-db91477-0a47d83-7dd16cd354", - "line_number": 67, + "guid": "7f7e34ac-4c5d41e-c812113-9dd21df976", + "line_number": 64, "metadata": { }, @@ -152,8 +152,8 @@ "attribute_index": -1, "display_name": "test_example_scene_1", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_1", - "guid": "c2c59205-60aa4b6-89a915f-2fec697b96", - "line_number": 3, + "guid": "0a492fae-af4640c-c87a973-39b5056250", + "line_number": 5, "metadata": { }, @@ -170,8 +170,8 @@ "attribute_index": -1, "display_name": "test_example_scene_2", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_2", - "guid": "8e4821c7-2bbb4e4-f80b561-1affd2504e", - "line_number": 9, + "guid": "afd347f2-4eba429-e8fb111-5867c60b91", + "line_number": 14, "metadata": { }, @@ -188,8 +188,8 @@ "attribute_index": -1, "display_name": "test_example_scene_3", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_3", - "guid": "73862c5a-47bc47e-593f8df-82d2206d82", - "line_number": 15, + "guid": "d41472b6-0f964bf-bbaca60-bfc9ac06d6", + "line_number": 24, "metadata": { }, @@ -206,8 +206,8 @@ "attribute_index": -1, "display_name": "test_example_scene_4", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_4", - "guid": "88f7a00a-5aeb45e-28e7e8c-0b5c1ace69", - "line_number": 21, + "guid": "d171d6cb-cd86475-8905fd9-57d315581d", + "line_number": 33, "metadata": { }, @@ -224,8 +224,8 @@ "attribute_index": -1, "display_name": "test_example_scene_5", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_5", - "guid": "6871c1ec-5c034dd-9a219e2-4d7e8441fc", - "line_number": 27, + "guid": "bc855c66-3343424-48efe64-8da64f2228", + "line_number": 41, "metadata": { }, @@ -242,8 +242,8 @@ "attribute_index": -1, "display_name": "test_example_scene_6", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_6", - "guid": "3163f365-1f8c421-9b77656-475d8a9916", - "line_number": 33, + "guid": "681c65ce-e77f458-8aa203a-3206b587a6", + "line_number": 50, "metadata": { }, @@ -260,7 +260,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_simple", "fully_qualified_name": "tests.test_projectile_wrapper.test_projectile_wrappers.test_projectile_template_simple", - "guid": "8a5c5887-515849f-7b880b9-026c79993f", + "guid": "78346152-07a54bf-b917be7-4ee563abae", "line_number": 4, "metadata": { @@ -278,7 +278,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_simple", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_simple", - "guid": "5bde7c94-632a4df-e9aef42-f7c3e707a8", + "guid": "ffd4d761-f595449-b87a2ab-e71ccdd01d", "line_number": 4, "metadata": { @@ -296,7 +296,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_advanced", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_advanced", - "guid": "f7f32802-e11e434-59cb7f4-6c909fd3bd", + "guid": "85079793-86f64aa-e848aca-e5b9b0f04f", "line_number": 10, "metadata": { @@ -314,7 +314,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_custom", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_custom", - "guid": "a16a887d-bf164e9-6911b5b-2cad100b78", + "guid": "8ab4293f-64fa4f8-7b3fcb4-6f82abc222", "line_number": 16, "metadata": { @@ -332,7 +332,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_node_2d", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_node_2d", - "guid": "09bf3878-fe2f487-db94642-39a8fcc2b5", + "guid": "6c3a79d8-90eb4ee-ebcfdb9-d87a9b036b", "line_number": 23, "metadata": { @@ -350,7 +350,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_cooldown", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_cooldown", - "guid": "83112654-814448e-8916622-7d1dc9b94a", + "guid": "9de84743-bffa453-eade98d-13efb1bc3f", "line_number": 4, "metadata": { @@ -368,7 +368,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_repeater", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_repeater", - "guid": "d0b681ee-1e4b4a6-fa5b75d-a393a0454b", + "guid": "35f3ee0c-3e6341f-8875fe7-bd6be2a97f", "line_number": 10, "metadata": { @@ -386,7 +386,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_timing_set", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_timing_set", - "guid": "27a0b74b-31aa4c8-ba7775d-60a45f25a5", + "guid": "aa775e3e-bf1a48a-9abf87d-56d0d25994", "line_number": 16, "metadata": { diff --git a/addons/godot_projectile_engine/GodotProjectileEngine.gd b/addons/godot_projectile_engine/GodotProjectileEngine.gd index f92121b4..c9960198 100644 --- a/addons/godot_projectile_engine/GodotProjectileEngine.gd +++ b/addons/godot_projectile_engine/GodotProjectileEngine.gd @@ -203,14 +203,19 @@ func clear_all_projectiles() -> void: ## Clear all ProjectileInstances func clear_projectile_instances() -> void: + print(projectile_updater_2d_nodes) for _projectile_udpater_node : ProjectileUpdater2D in projectile_updater_2d_nodes.values(): - _projectile_udpater_node.clear_projectiles() + if is_instance_valid(_projectile_udpater_node): + _projectile_udpater_node.clear_projectiles() pass ## Clear all ProjectileNode2Ds func clear_projectile_nodes() -> void: + print(projectile_node_manager_2d_nodes) for _projectile_node_manager : ProjectileNodeManager2D in projectile_node_manager_2d_nodes.values(): + if is_instance_valid(_projectile_node_manager): + _projectile_node_manager.clear_projectiles() _projectile_node_manager.clear_projectiles() pass diff --git a/addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd b/addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd index bbac73d5..1412a438 100644 --- a/addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd +++ b/addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd @@ -60,6 +60,7 @@ func setup_projectile_spawner() -> void: return if typeof(projectile_template_2d) != TYPE_OBJECT: return + match projectile_template_2d.get_script(): ProjectileTemplateSimple2D: if !is_instance_valid( @@ -101,6 +102,7 @@ func setup_projectile_spawner() -> void: ) ): create_projectile_node_manager_2d() + projectile_node_manager_2d = ProjectileEngine.projectile_node_manager_2d_nodes.get( projectile_template_2d ) @@ -231,9 +233,13 @@ func create_projectile_node_manager_2d() -> void: ProjectileEngine.projectile_environment.add_child(_projectile_node_manager, true) _projectile_node_manager.owner = ProjectileEngine.projectile_environment - ProjectileEngine.projectile_node_manager_2d_nodes.get_or_add( - projectile_template_2d, _projectile_node_manager - ) + + if ProjectileEngine.projectile_node_manager_2d_nodes.has(projectile_template_2d): + ProjectileEngine.projectile_node_manager_2d_nodes.set(projectile_template_2d, _projectile_node_manager) + else: + ProjectileEngine.projectile_node_manager_2d_nodes.get_or_add( + projectile_template_2d, _projectile_node_manager + ) _projectile_node_manager.setup_projectile_manager() pass diff --git a/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn b/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn index b047f57f..81fe2662 100644 --- a/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn +++ b/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn @@ -12,29 +12,7 @@ [sub_resource type="Resource" id="Resource_nfr7l"] script = ExtResource("3_7j3qm") -speed = 100.0 -projectile_pooling_amount = 500 texture = ExtResource("4_716l7") -scale = Vector2(1, 1) -texture_rotation = 0.0 -skew = 0.0 -texture_visible = true -texture_z_index = 0 -texture_modulate = Color(1, 1, 1, 1) -collision_layer = 0 -collision_mask = 0 -texture_rotate_direction = false -destroy_on_body_collide = true -destroy_on_area_collide = true -life_time_second_max = 10.0 -life_distance_max = 1000.0 -speed_random = Vector3(0, 0, 0) -texture_rotation_random = Vector3(0, 0, 0) -texture_rotation_speed_random = Vector3(0, 0, 0) -scale_random = Vector3(0, 0, 0) -life_time_second_random = Vector3(0, 0, 0) -life_distance_random = Vector3(0, 0, 0) -custom_data = [] metadata/_custom_type_script = "uid://dqlixqba72p5f" [node name="Example1FirstProjectile2" type="Node2D"] @@ -71,4 +49,5 @@ script = ExtResource("8_1kks5") metadata/_custom_type_script = "uid://sjpvs4m6jk71" [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +process_mode = 4 stream = ExtResource("9_8rnjn") diff --git a/project.godot b/project.godot index c6d77431..7fc6fcf3 100644 --- a/project.godot +++ b/project.godot @@ -35,6 +35,11 @@ enabled=PackedStringArray("res://addons/godot_projectile_engine/plugin.cfg", "re settings/test/test_lookup_folder="tests" ui/inspector/tree_view_mode=1 ui/toolbar/run_overall=true +report/godot/push_error=true +hooks/session_hooks=Dictionary[String, bool]({ +"res://addons/gdUnit4/src/core/hooks/GdUnitHtmlReporterTestSessionHook.gd": false, +"res://addons/gdUnit4/src/core/hooks/GdUnitXMLReporterTestSessionHook.gd": false +}) [global_group] diff --git a/tests/pattern_composer/test_gdunit_pattern_composer.gd b/tests/pattern_composer/test_gdunit_pattern_composer.gd index c8b38219..2621ca7e 100644 --- a/tests/pattern_composer/test_gdunit_pattern_composer.gd +++ b/tests/pattern_composer/test_gdunit_pattern_composer.gd @@ -1,74 +1,70 @@ extends GdUnitTestSuite -var runner : GdUnitSceneRunner +var runner: GdUnitSceneRunner + func test_pattern_composer_single() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://c100r43aw5b57") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() pass func test_pattern_composer_polygon() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://dlxrdpvh8mcpu") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() pass func test_pattern_composer_spread() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://dtmk56w332se2") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() pass func test_pattern_composer_stack() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://yypoytt7an8h") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() pass func test_pattern_composer_shape_2d() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://vnh02vjautdp") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() + pass func test_pattern_composer_custom_shape_2d() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://s3visbj8dq43") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() + pass func test_pattern_composer_loop() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://vuaj15gpwguh") - runner._scene_auto_free = false - runner.simulate_frames(5) + runner._scene_auto_free = true + await runner.simulate_frames(10) assert_object(runner).is_not_null() + pass func test_pattern_composer_group() -> void: runner = null - ProjectileEngine.clear_all_projectiles() runner = scene_runner("uid://crdq3kd2tjy82") - runner.simulate_frames(5) - runner._scene_auto_free = false + await runner.simulate_frames(10) + runner._scene_auto_free = true assert_object(runner).is_not_null() - pass + pass \ No newline at end of file diff --git a/tests/pattern_composer/test_pattern_composer_custom_shape.tscn b/tests/pattern_composer/test_pattern_composer_custom_shape.tscn index 668c0a70..ae2b47a7 100644 --- a/tests/pattern_composer/test_pattern_composer_custom_shape.tscn +++ b/tests/pattern_composer/test_pattern_composer_custom_shape.tscn @@ -2,16 +2,16 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_8gt1f"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_asdxy"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_dpmww"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_uu3uj"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_e4w75"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_m2jvt"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_paut7"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_nebvw"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_dpmww"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_uu3uj"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_e4w75"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_asdxy"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_paut7"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_nebvw"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_iaaan"] [ext_resource type="Script" uid="uid://cx6esy7bqcdgd" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCCustomShape2D.gd" id="10_asdxy"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_2v6jc"] -[ext_resource type="Curve2D" path="res://tests/test_resources/test_square_curve_2d.tres" id="11_asdxy"] +[ext_resource type="Curve2D" uid="uid://bt8dtk3k0xac0" path="res://tests/test_resources/test_square_curve_2d.tres" id="11_asdxy"] [ext_resource type="Script" uid="uid://sjpvs4m6jk71" path="res://addons/godot_projectile_engine/core/timing_scheduler/repeater/tsc_repeater.gd" id="12_hbuh1"] [node name="TestPatternComposerSingle" type="Node2D"] @@ -72,7 +72,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" position = Vector2(-3, 0) script = ExtResource("2_asdxy") projectile_composer_name = "custom_shape_mix" -projectile_template_2d = ExtResource("6_m2jvt") +projectile_template_2d = ExtResource("6_asdxy") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" diff --git a/tests/pattern_composer/test_pattern_composer_group.tscn b/tests/pattern_composer/test_pattern_composer_group.tscn index c2963bbf..6b3fbe58 100644 --- a/tests/pattern_composer/test_pattern_composer_group.tscn +++ b/tests/pattern_composer/test_pattern_composer_group.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_obcrw"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_57kgr"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_eakl3"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_2n4vl"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_x7q7g"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_6kvvi"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_fnys6"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_vhvrr"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_eakl3"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_2n4vl"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_x7q7g"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_obcrw"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_fnys6"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_vhvrr"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_ewcbk"] [ext_resource type="Script" uid="uid://1bygasnif26d" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCGroup.gd" id="10_obcrw"] [ext_resource type="Script" uid="uid://co24jiat0y46s" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCSingle2D.gd" id="11_x5gny"] @@ -50,7 +50,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" [node name="ProjectileSpawner2D9" type="Node2D" parent="." node_paths=PackedStringArray("timing_scheduler")] script = ExtResource("2_57kgr") projectile_composer_name = "group_mix" -projectile_template_2d = ExtResource("6_6kvvi") +projectile_template_2d = ExtResource("6_obcrw") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" @@ -110,7 +110,6 @@ metadata/_custom_type_script = "uid://b8nclaklcf4uu" [node name="TSCRepeater" type="Node" parent="TimingScheduler"] script = ExtResource("16_ffbux") duration = 0.017 -repeat_count = 1 metadata/_custom_type_script = "uid://sjpvs4m6jk71" [node name="Camera2D" type="Camera2D" parent="."] diff --git a/tests/pattern_composer/test_pattern_composer_loop.tscn b/tests/pattern_composer/test_pattern_composer_loop.tscn index 45463bcb..0b13da07 100644 --- a/tests/pattern_composer/test_pattern_composer_loop.tscn +++ b/tests/pattern_composer/test_pattern_composer_loop.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_uh4jd"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_7343e"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_il24c"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_qfl0s"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_t8rpw"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_2er1c"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_4cg3g"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_6eb16"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_il24c"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_qfl0s"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_t8rpw"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_qfl0s"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_4cg3g"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_6eb16"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_dbwet"] [ext_resource type="Script" uid="uid://cw3jfu53wt4vm" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCStack2D.gd" id="10_j52gr"] [ext_resource type="Script" uid="uid://1iejq4nn3soy" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCLoop.gd" id="10_uh4jd"] @@ -50,7 +50,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" [node name="ProjectileSpawner2D9" type="Node2D" parent="." node_paths=PackedStringArray("timing_scheduler")] script = ExtResource("2_7343e") projectile_composer_name = "loop_mix" -projectile_template_2d = ExtResource("6_2er1c") +projectile_template_2d = ExtResource("6_qfl0s") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" @@ -114,7 +114,6 @@ metadata/_custom_type_script = "uid://b8nclaklcf4uu" [node name="TSCRepeater" type="Node" parent="TimingScheduler"] script = ExtResource("13_eg1ye") duration = 0.017 -repeat_count = 1 metadata/_custom_type_script = "uid://sjpvs4m6jk71" [node name="Camera2D" type="Camera2D" parent="."] diff --git a/tests/pattern_composer/test_pattern_composer_shape_2d.tscn b/tests/pattern_composer/test_pattern_composer_shape_2d.tscn index a428f6d4..849ecd64 100644 --- a/tests/pattern_composer/test_pattern_composer_shape_2d.tscn +++ b/tests/pattern_composer/test_pattern_composer_shape_2d.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_smeh5"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_oi4dw"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_oo77f"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_dbn8e"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_xqeg0"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_t75eb"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_wj2ob"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_qe436"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_oo77f"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_dbn8e"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_xqeg0"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_smeh5"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_wj2ob"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_qe436"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_dvc0v"] [ext_resource type="Script" uid="uid://cwpsu1ih5c60x" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCShape2D.gd" id="10_smeh5"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_rspnp"] @@ -95,7 +95,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" position = Vector2(-3, 0) script = ExtResource("2_oi4dw") projectile_composer_name = "shape_7" -projectile_template_2d = ExtResource("6_t75eb") +projectile_template_2d = ExtResource("6_smeh5") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" diff --git a/tests/pattern_composer/test_pattern_composer_single.tscn b/tests/pattern_composer/test_pattern_composer_single.tscn index c4b3f7bd..2ca32356 100644 --- a/tests/pattern_composer/test_pattern_composer_single.tscn +++ b/tests/pattern_composer/test_pattern_composer_single.tscn @@ -2,14 +2,14 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_boube"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_pipqy"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_kru0b"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_kru0b"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="4_euvmo"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_ii2n4"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_ii2n4"] [ext_resource type="Script" uid="uid://co24jiat0y46s" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCSingle2D.gd" id="5_06vbg"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_boube"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_pipqy"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_euvmo"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_06vbg"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_boube"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_euvmo"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_euvmo"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_06vbg"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="8_wpdu6"] [ext_resource type="Script" uid="uid://sjpvs4m6jk71" path="res://addons/godot_projectile_engine/core/timing_scheduler/repeater/tsc_repeater.gd" id="9_8kem5"] @@ -87,7 +87,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" position = Vector2(-3, 0) script = ExtResource("2_pipqy") projectile_composer_name = "simple_mix" -projectile_template_2d = ExtResource("6_pipqy") +projectile_template_2d = ExtResource("6_euvmo") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" diff --git a/tests/pattern_composer/test_pattern_composer_spread.tscn b/tests/pattern_composer/test_pattern_composer_spread.tscn index 15ae6b42..b145a232 100644 --- a/tests/pattern_composer/test_pattern_composer_spread.tscn +++ b/tests/pattern_composer/test_pattern_composer_spread.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_as32i"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_h84bo"] -[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_finw8"] -[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_41i3y"] -[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_b5vg0"] -[ext_resource type="Resource" uid="uid://dv7tscon4nv84" path="res://addons/godot_projectile_engine/examples/assets/projectile_template/example_projectile_template_advanced_1.tres" id="6_1d7aq"] -[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_egn54"] -[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_v5a3q"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_finw8"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_41i3y"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_b5vg0"] +[ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_as32i"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_egn54"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_v5a3q"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_rnje6"] [ext_resource type="Script" uid="uid://brqy6ew0t2b35" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCSpread2D.gd" id="10_h84bo"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_pdyjo"] @@ -87,7 +87,7 @@ metadata/_custom_type_script = "uid://cnqgcej10tinn" position = Vector2(-3, 0) script = ExtResource("2_h84bo") projectile_composer_name = "spread_mix" -projectile_template_2d = ExtResource("6_1d7aq") +projectile_template_2d = ExtResource("6_as32i") timing_scheduler = NodePath("../TimingScheduler") metadata/_custom_type_script = "uid://cnqgcej10tinn" @@ -153,7 +153,6 @@ metadata/_custom_type_script = "uid://bc73oiea731jc" [node name="PCCSpread2D" type="Node" parent="PatternComposer2D4"] script = ExtResource("10_h84bo") -spread_value = 30.0 metadata/_custom_type_script = "uid://brqy6ew0t2b35" [node name="PatternComposer2D9" type="Node" parent="."] @@ -163,7 +162,6 @@ metadata/_custom_type_script = "uid://bc73oiea731jc" [node name="PCCSpread2D" type="Node" parent="PatternComposer2D9"] script = ExtResource("10_h84bo") -spread_value = -20.0 metadata/_custom_type_script = "uid://brqy6ew0t2b35" [node name="PatternComposer2D7" type="Node" parent="."] @@ -173,9 +171,8 @@ metadata/_custom_type_script = "uid://bc73oiea731jc" [node name="PCCSpread2D" type="Node" parent="PatternComposer2D7"] script = ExtResource("10_h84bo") -spread_amount = 4 spread_type = 0 -spread_value = 12.0 +spread_amount = 4 metadata/_custom_type_script = "uid://brqy6ew0t2b35" [node name="TimingScheduler" type="Node" parent="."] diff --git a/tests/pattern_composer/test_pattern_composer_stack.tscn b/tests/pattern_composer/test_pattern_composer_stack.tscn index 1949ad5c..6918c950 100644 --- a/tests/pattern_composer/test_pattern_composer_stack.tscn +++ b/tests/pattern_composer/test_pattern_composer_stack.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://dn7rm61wq3t3s" path="res://addons/godot_projectile_engine/core/projectile_environment/projectile_environment.gd" id="1_v8awa"] [ext_resource type="Script" uid="uid://cnqgcej10tinn" path="res://addons/godot_projectile_engine/core/projectile_spawner/projectile_spawner.gd" id="2_twdm3"] -[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_jt0v0"] -[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_xldvl"] -[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_5febv"] +[ext_resource type="Resource" uid="uid://cpi2kow6y6b26" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_simple_basic.tres" id="3_jt0v0"] +[ext_resource type="Resource" uid="uid://dxwntxwh1rc2j" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_custom_basic.tres" id="4_xldvl"] +[ext_resource type="Resource" uid="uid://cwuljq73r3hlk" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_basic.tres" id="5_5febv"] [ext_resource type="Resource" uid="uid://d2fbngr8ph0y4" path="res://tests/test_resources/test_projectile_template_advanced.tres" id="6_twdm3"] -[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_pn7vb"] -[ext_resource type="Resource" path="res://tests/projectile_template/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_yaktm"] +[ext_resource type="Resource" uid="uid://dct2nl4m318uu" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_custom_complex.tres" id="7_pn7vb"] +[ext_resource type="Resource" uid="uid://bh6mjx2xbu7a8" path="res://tests/test_resources/test_projectile_template_resources/test_projectile_template_node_complex.tres" id="8_yaktm"] [ext_resource type="Script" uid="uid://bc73oiea731jc" path="res://addons/godot_projectile_engine/core/pattern_composer/pattern_composer.gd" id="9_xodb8"] [ext_resource type="Script" uid="uid://cw3jfu53wt4vm" path="res://addons/godot_projectile_engine/core/pattern_composer/component/PCCStack2D.gd" id="10_v8awa"] [ext_resource type="Script" uid="uid://b8nclaklcf4uu" path="res://addons/godot_projectile_engine/core/timing_scheduler/timing_scheduler.gd" id="11_4tk6e"] diff --git a/tests/test_example_scenes/test_example_scenes.gd b/tests/test_example_scenes/test_example_scenes.gd index 57a81550..7f9b69fe 100644 --- a/tests/test_example_scenes/test_example_scenes.gd +++ b/tests/test_example_scenes/test_example_scenes.gd @@ -1,38 +1,58 @@ extends GdUnitTestSuite +var runner: GdUnitSceneRunner + func test_example_scene_1() -> void: - var runner := scene_runner("uid://cwlrovd240rt2") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://cwlrovd240rt2") + # runner._scene_auto_free = true + + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_example_scene_2() -> void: - var runner := scene_runner("uid://b34nudu7t8gwd") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://b34nudu7t8gwd") + runner._scene_auto_free = true + + await runner.simulate_frames(10) + assert_object(runner).is_not_null() pass func test_example_scene_3() -> void: - var runner := scene_runner("uid://rxicnemi55bq") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://rxicnemi55bq") + runner._scene_auto_free = true + + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass - + func test_example_scene_4() -> void: - var runner := scene_runner("uid://4jgbpsiaa8uu") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://4jgbpsiaa8uu") + runner._scene_auto_free = true + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass - + func test_example_scene_5() -> void: - var runner := scene_runner("uid://bccgqsjl1b74f") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://bccgqsjl1b74f") + runner._scene_auto_free = true + + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass - + func test_example_scene_6() -> void: - var runner := scene_runner("uid://dactafr7x6iw3") - runner.simulate_frames(5) + runner = null + runner = scene_runner("uid://dactafr7x6iw3") + runner._scene_auto_free = true + + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass - \ No newline at end of file + diff --git a/tests/test_projectile_wrapper/test_projectile_wrappers.gd b/tests/test_projectile_wrapper/test_projectile_wrappers.gd index 53c9a5a9..22a7ccb7 100644 --- a/tests/test_projectile_wrapper/test_projectile_wrappers.gd +++ b/tests/test_projectile_wrapper/test_projectile_wrappers.gd @@ -3,7 +3,7 @@ extends GdUnitTestSuite func test_projectile_template_simple() -> void: var runner := scene_runner("uid://uf11mp6p4ldp") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() ProjectileEngine.activate_all_projectile_wrappers("") ProjectileEngine.activate_all_projectile_wrappers("wrong_wrapper") diff --git a/tests/test_resources/test_gdunit_projectile_template.gd b/tests/test_resources/test_gdunit_projectile_template.gd index 218845b5..3f927e98 100644 --- a/tests/test_resources/test_gdunit_projectile_template.gd +++ b/tests/test_resources/test_gdunit_projectile_template.gd @@ -3,25 +3,25 @@ extends GdUnitTestSuite func test_projectile_template_simple() -> void: var runner := scene_runner("uid://l1bpiwyep1wq") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_projectile_template_advanced() -> void: var runner := scene_runner("uid://bgo83y47tcri0") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_projectile_template_custom() -> void: var runner := scene_runner("uid://cj68gunmdf1d2") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_projectile_template_node_2d() -> void: var runner := scene_runner("uid://cm72pafj44d6b") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass \ No newline at end of file diff --git a/tests/timing_scheduler/test_gdunit_timing_scheduler.gd b/tests/timing_scheduler/test_gdunit_timing_scheduler.gd index fc59ebe2..843cdd18 100644 --- a/tests/timing_scheduler/test_gdunit_timing_scheduler.gd +++ b/tests/timing_scheduler/test_gdunit_timing_scheduler.gd @@ -3,18 +3,18 @@ extends GdUnitTestSuite func test_timing_scheduler_cooldown() -> void: var runner := scene_runner("uid://c3h721cnivuwh") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_timing_scheduler_repeater() -> void: var runner := scene_runner("uid://iutp25ib6h50") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_timing_scheduler_timing_set() -> void: var runner := scene_runner("uid://uibs8p43qvxc") - runner.simulate_frames(5) + await runner.simulate_frames(10) assert_object(runner).is_not_null() pass \ No newline at end of file From 82884bd5c32ed61a734ed9108206a60febbc1416 Mon Sep 17 00:00:00 2001 From: superhighlevel Date: Sun, 26 Oct 2025 14:33:23 +0700 Subject: [PATCH 3/4] Update tests --- addons/gdUnit4/GdUnitRunner.cfg | 42 +++++++++---------- .../test_example_scenes.gd | 34 +++++++++++---- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/addons/gdUnit4/GdUnitRunner.cfg b/addons/gdUnit4/GdUnitRunner.cfg index 0ce4c4c4..7adcacef 100644 --- a/addons/gdUnit4/GdUnitRunner.cfg +++ b/addons/gdUnit4/GdUnitRunner.cfg @@ -8,7 +8,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_single", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_single", - "guid": "9b2703fc-d4b14b0-1a587af-5ebdb9fc5a", + "guid": "68a493fd-e32b498-68c61c9-7f00a12681", "line_number": 5, "metadata": { @@ -26,7 +26,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_polygon", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_polygon", - "guid": "207f89a2-163c419-2906ee8-6779353729", + "guid": "514e87c6-3fab4c1-4ad7d2e-8a2c8147ba", "line_number": 13, "metadata": { @@ -44,7 +44,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_spread", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_spread", - "guid": "1c1a6975-bc664b7-087c1b7-8768ae59e7", + "guid": "be49e051-33bb4bc-0937337-5d4a067e85", "line_number": 21, "metadata": { @@ -62,7 +62,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_stack", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_stack", - "guid": "ffaba550-694a419-7ae91d1-b1af2a697c", + "guid": "b6286625-89f54c0-faf79b0-5979e16ab2", "line_number": 29, "metadata": { @@ -80,7 +80,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_shape_2d", - "guid": "3e976523-ebcf472-d8e6058-3c08f8ba4c", + "guid": "15c56a57-8afb46e-cb9f7b9-cec73b3562", "line_number": 37, "metadata": { @@ -98,7 +98,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_custom_shape_2d", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_custom_shape_2d", - "guid": "ee0bcc74-05a64ee-c9818c3-790c1a6ec6", + "guid": "4c9c8316-b7384d1-daf3ae9-31b3c23872", "line_number": 46, "metadata": { @@ -116,7 +116,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_loop", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_loop", - "guid": "6de6038e-877d470-fac00cf-c0027c2699", + "guid": "ef8a5532-7b754bf-790a86e-9700837e63", "line_number": 55, "metadata": { @@ -134,7 +134,7 @@ "attribute_index": -1, "display_name": "test_pattern_composer_group", "fully_qualified_name": "tests.pattern_composer.test_gdunit_pattern_composer.test_pattern_composer_group", - "guid": "7f7e34ac-4c5d41e-c812113-9dd21df976", + "guid": "7f4758e9-cebb476-1aa5c51-17f1212a24", "line_number": 64, "metadata": { @@ -171,7 +171,7 @@ "display_name": "test_example_scene_2", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_2", "guid": "afd347f2-4eba429-e8fb111-5867c60b91", - "line_number": 14, + "line_number": 17, "metadata": { }, @@ -189,7 +189,7 @@ "display_name": "test_example_scene_3", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_3", "guid": "d41472b6-0f964bf-bbaca60-bfc9ac06d6", - "line_number": 24, + "line_number": 30, "metadata": { }, @@ -207,7 +207,7 @@ "display_name": "test_example_scene_4", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_4", "guid": "d171d6cb-cd86475-8905fd9-57d315581d", - "line_number": 33, + "line_number": 41, "metadata": { }, @@ -225,7 +225,7 @@ "display_name": "test_example_scene_5", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_5", "guid": "bc855c66-3343424-48efe64-8da64f2228", - "line_number": 41, + "line_number": 52, "metadata": { }, @@ -243,7 +243,7 @@ "display_name": "test_example_scene_6", "fully_qualified_name": "tests.test_example_scenes.test_example_scenes.test_example_scene_6", "guid": "681c65ce-e77f458-8aa203a-3206b587a6", - "line_number": 50, + "line_number": 63, "metadata": { }, @@ -260,7 +260,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_simple", "fully_qualified_name": "tests.test_projectile_wrapper.test_projectile_wrappers.test_projectile_template_simple", - "guid": "78346152-07a54bf-b917be7-4ee563abae", + "guid": "9086d523-1cd6413-f946bde-c83b51d175", "line_number": 4, "metadata": { @@ -278,7 +278,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_simple", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_simple", - "guid": "ffd4d761-f595449-b87a2ab-e71ccdd01d", + "guid": "b48a2ce4-3b754fd-68e8270-dc39b0f3e5", "line_number": 4, "metadata": { @@ -296,7 +296,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_advanced", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_advanced", - "guid": "85079793-86f64aa-e848aca-e5b9b0f04f", + "guid": "f8f17e5a-f5434c8-aad7fdc-4a924867d2", "line_number": 10, "metadata": { @@ -314,7 +314,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_custom", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_custom", - "guid": "8ab4293f-64fa4f8-7b3fcb4-6f82abc222", + "guid": "0b892a7f-a85b4a0-9b4bc2a-4d51f67f9e", "line_number": 16, "metadata": { @@ -332,7 +332,7 @@ "attribute_index": -1, "display_name": "test_projectile_template_node_2d", "fully_qualified_name": "tests.test_resources.test_gdunit_projectile_template.test_projectile_template_node_2d", - "guid": "6c3a79d8-90eb4ee-ebcfdb9-d87a9b036b", + "guid": "b3aa255f-0ac046f-d93bf41-4e2e235e7a", "line_number": 23, "metadata": { @@ -350,7 +350,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_cooldown", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_cooldown", - "guid": "9de84743-bffa453-eade98d-13efb1bc3f", + "guid": "f6655f5a-15944cb-1af1864-45bfc20f6a", "line_number": 4, "metadata": { @@ -368,7 +368,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_repeater", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_repeater", - "guid": "35f3ee0c-3e6341f-8875fe7-bd6be2a97f", + "guid": "baf76710-bd0b493-5af4acd-d40f6f43ad", "line_number": 10, "metadata": { @@ -386,7 +386,7 @@ "attribute_index": -1, "display_name": "test_timing_scheduler_timing_set", "fully_qualified_name": "tests.timing_scheduler.test_gdunit_timing_scheduler.test_timing_scheduler_timing_set", - "guid": "aa775e3e-bf1a48a-9abf87d-56d0d25994", + "guid": "cc593cf0-c32e4ca-6baefff-70d19d9845", "line_number": 16, "metadata": { diff --git a/tests/test_example_scenes/test_example_scenes.gd b/tests/test_example_scenes/test_example_scenes.gd index 7f9b69fe..29f1a1a1 100644 --- a/tests/test_example_scenes/test_example_scenes.gd +++ b/tests/test_example_scenes/test_example_scenes.gd @@ -4,16 +4,22 @@ var runner: GdUnitSceneRunner func test_example_scene_1() -> void: runner = null - runner = scene_runner("uid://cwlrovd240rt2") - # runner._scene_auto_free = true + var _scene : Node2D = load("uid://cwlrovd240rt2").instantiate() + ## Workaround for A problem + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = scene_runner(_scene) + runner._scene_auto_free = true await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_example_scene_2() -> void: + var _scene : Node2D = load("uid://b34nudu7t8gwd").instantiate() + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = null - runner = scene_runner("uid://b34nudu7t8gwd") + runner = scene_runner(_scene) runner._scene_auto_free = true await runner.simulate_frames(10) @@ -23,33 +29,43 @@ func test_example_scene_2() -> void: func test_example_scene_3() -> void: runner = null - runner = scene_runner("uid://rxicnemi55bq") - runner._scene_auto_free = true + var _scene : Node2D = load("uid://rxicnemi55bq").instantiate() + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = scene_runner(_scene) + runner._scene_auto_free = true await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_example_scene_4() -> void: + var _scene : Node2D = load("uid://4jgbpsiaa8uu").instantiate() + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = null - runner = scene_runner("uid://4jgbpsiaa8uu") + runner = scene_runner(_scene) runner._scene_auto_free = true await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_example_scene_5() -> void: + var _scene : Node2D = load("uid://bccgqsjl1b74f").instantiate() + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = null - runner = scene_runner("uid://bccgqsjl1b74f") + runner = scene_runner(_scene) runner._scene_auto_free = true - await runner.simulate_frames(10) assert_object(runner).is_not_null() pass func test_example_scene_6() -> void: + var _scene : Node2D = load("uid://dactafr7x6iw3").instantiate() + _scene.process_mode = Node.PROCESS_MODE_DISABLED + runner = null - runner = scene_runner("uid://dactafr7x6iw3") + runner = scene_runner(_scene) runner._scene_auto_free = true await runner.simulate_frames(10) From 71621222b2dbffde30c252635218f31c172eb57a Mon Sep 17 00:00:00 2001 From: superhighlevel Date: Sun, 26 Oct 2025 14:33:43 +0700 Subject: [PATCH 4/4] Update examaple --- .../examples/scenes/example_1_first_pattern.tscn | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn b/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn index 81fe2662..407ec456 100644 --- a/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn +++ b/addons/godot_projectile_engine/examples/scenes/example_1_first_pattern.tscn @@ -49,5 +49,4 @@ script = ExtResource("8_1kks5") metadata/_custom_type_script = "uid://sjpvs4m6jk71" [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -process_mode = 4 stream = ExtResource("9_8rnjn")