Give the Joke Shop a dark stucco wall and a photo-anchored concept
Full build / Import + headless tests (push) Successful in 48s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-03 16:22:20 +01:00
1 parent 36583921cf
commit 634b1f75a3
14 files changed
+56 -13

No files matched your search

+10 -1
View File
@@ -76,12 +76,21 @@ func test_joke_shop_uses_the_real_sunset_strip_layout() -> bool:
"the low entrance step is built")
var g := TestUtils.check(root.find_child("AlleyWall", true, false) == null,
"the old alley walls are gone")
# The hall wall uses the dark stucco pick, not the grey sidewalk-paver tile,
# so it reads as the real club's flat black plaster.
var wall := root.find_child("Building", true, false) as Node3D
var wall_mesh := wall.get_child(0) as MeshInstance3D if wall != null and wall.get_child_count() > 0 else null
var wall_mat: Material = wall_mesh.mesh.surface_get_material(0) if wall_mesh != null and wall_mesh.mesh != null else null
var g2 := TestUtils.check(wall_mat is StandardMaterial3D
and (wall_mat as StandardMaterial3D).albedo_texture != null
and (wall_mat as StandardMaterial3D).albedo_texture.resource_path.contains("dark_stucco"),
"the hall wall carries the dark stucco texture")
var placements: Array = builder.spec.get("prop_placements", [])
var h := TestUtils.check(not placements.is_empty()
and WorldBuilder.placement_problems(placements).is_empty(),
"the Joke Shop prop placements stay on the sidewalk and clear the lane")
root.free()
return a and b and c and d and e and f and g and h
return a and b and c and d and e and f and g and g2 and h
func test_joke_shop_geometry_stays_inside_the_map_budget() -> bool:
var root := Node3D.new()