Add tests for scenery surface caching and preview behavior

- Introduced `test_scenery_brick_preview.gd` to validate focused placement and CPU draw-cost for large brick walls.
- Added `test_scenery_surface_cache.gd` to assess texture budget, visual equivalence, and cache invalidation.
- Created `test_scenery_surface_preview.gd` to evaluate adaptive preview selection and placement behavior.
- Implemented various helper functions to measure drawing performance and validate expected behaviors during tests.
- Added unique identifiers for new test files to ensure proper tracking and management.
This commit is contained in:
2026-10-21 11:06:57 -04:00
parent 80ba83b703
commit c1758efd3b
54 changed files with 5941 additions and 526 deletions
+33 -16
View File
@@ -29,21 +29,18 @@ size_flags_horizontal = 3
theme_override_font_sizes/font_size = 18
text = "Choose"
[node name="CloseButton" type="Button" parent="MarginContainer/VBoxContainer/TitleBar"]
unique_name_in_owner = true
layout_mode = 2
text = "×"
[node name="GalleryTabs" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
[node name="GalleryTabs" type="HFlowContainer" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
visible = false
h_separation = 8
v_separation = 8
[node name="BackgroundsTab" type="Button" parent="MarginContainer/VBoxContainer/GalleryTabs"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "🌤 Backgrounds"
text = "☀️ Backgrounds"
[node name="ArtworkTab" type="Button" parent="MarginContainer/VBoxContainer/GalleryTabs"]
unique_name_in_owner = true
@@ -51,11 +48,17 @@ layout_mode = 2
size_flags_horizontal = 3
text = "🎨 Artwork"
[node name="TagFilter" type="OptionButton" parent="MarginContainer/VBoxContainer/GalleryTabs"]
[node name="EditSceneryButton" type="Button" parent="MarginContainer/VBoxContainer/GalleryTabs"]
unique_name_in_owner = true
layout_mode = 2
text = "✋ Edit placed scenery"
[node name="ArtworkFilters" type="HFlowContainer" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
visible = false
h_separation = 8
v_separation = 8
[node name="GridScroll" type="ScrollContainer" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
@@ -77,6 +80,14 @@ theme_override_constants/h_separation = 8
theme_override_constants/v_separation = 8
columns = 4
[node name="SurfaceCardsRow" type="HBoxContainer" parent="MarginContainer/VBoxContainer/GridScroll/ContentStack"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
alignment = 1
theme_override_constants/separation = 8
visible = false
[node name="EmptyLabel" type="Label" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
@@ -89,6 +100,18 @@ vertical_alignment = 1
[node name="Footer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
alignment = 1
theme_override_constants/separation = 16
[node name="CloseButton" type="Button" parent="MarginContainer/VBoxContainer/Footer"]
unique_name_in_owner = true
layout_mode = 2
text = "Close"
[node name="FooterSpacer" type="Control" parent="MarginContainer/VBoxContainer/Footer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
visible = false
[node name="PrevButton" type="Button" parent="MarginContainer/VBoxContainer/Footer"]
unique_name_in_owner = true
@@ -119,10 +142,4 @@ text = "Refresh"
unique_name_in_owner = true
layout_mode = 2
visible = false
text = "✏️ Make artwork"
[node name="EditSceneryButton" type="Button" parent="MarginContainer/VBoxContainer/Footer"]
unique_name_in_owner = true
layout_mode = 2
visible = false
text = "🎛 Edit placed Scenery"
text = "✏️ Make artwork…"