Map 1: rebuild Hollywood as the El Capitan landmark
Replace the generic boulevard facade with a stylized 6840 Hollywood Blvd block: six Ionic columns, eight stone steps, Masonic frieze/medallions, event banners, side doors, El Capitan Theatre and retail neighbours, Ovation Hollywood arcade, Walk of Fame and four-lane street markings. Add the Day and Night Hollywood venue-menu rows. Night uses a phase-time offset so a full-length shift stays in LATE while the clock starts at zero; late routine traffic keeps the street populated and the offset round-trips through checkpoint restore. Retune local-light falloff to linear attenuation, add a cool north sky fill, and use the smooth limestone facade texture. Refresh the staged gallery and map references; add geometry-budget, menu, night-offset and late-traffic tests.
This commit is contained in:
1 parent
3f335481d6
commit
74dc1fdc1d
50 files changed
+1176
-100
No files matched your search
@@ -52,6 +52,52 @@ func test_venue_geometry_specs_are_distinct_and_defaulted() -> bool:
|
||||
root.free()
|
||||
return a and b and c and d and e and f and g
|
||||
|
||||
|
||||
func test_hollywood_uses_the_real_landmark_layout() -> bool:
|
||||
var root := Node3D.new()
|
||||
var builder := WorldBuilder.new(root)
|
||||
builder.build()
|
||||
var columns := root.find_child("IonicColonnade", true, false)
|
||||
var steps := root.find_child("Steps", true, false)
|
||||
var a := TestUtils.check(columns != null and columns.get_child_count() >= 12,
|
||||
"six Ionic columns with bases and capitals are built")
|
||||
var b := TestUtils.check(steps != null and steps.get_child_count() >= 8,
|
||||
"eight stone steps are built")
|
||||
var frieze := root.find_child("FriezeInscription", true, false) as Label3D
|
||||
var c := TestUtils.check(frieze != null and frieze.text.contains("FREEMASONRY")
|
||||
and frieze.text.contains("HEARTS OF MEN"), "the Masonic parapet motto is present")
|
||||
var banners := root.find_child("EventBanners", true, false)
|
||||
var d := TestUtils.check(banners != null and banners.get_child_count() >= 9,
|
||||
"three red event banners with their trim are present")
|
||||
var e := TestUtils.check(root.find_child("WalkOfFame", true, false) != null,
|
||||
"the Hollywood Walk of Fame strip is built")
|
||||
var f := TestUtils.check(root.get_node_or_null("NeighbourBlocks/ElCapitanTheatre") != null
|
||||
and root.get_node_or_null("NeighbourBlocks/EastRetailBlock") != null,
|
||||
"the El Capitan Theatre and east retail neighbours are built")
|
||||
var g := TestUtils.check(root.find_child("OvationHollywood", true, false) != null,
|
||||
"the opposite Ovation Hollywood block is built")
|
||||
var placements: Array = builder.spec.get("prop_placements", [])
|
||||
var h := TestUtils.check(not placements.is_empty()
|
||||
and WorldBuilder.placement_problems(placements).is_empty(),
|
||||
"the landmark prop placements keep the wide steps clear")
|
||||
root.free()
|
||||
return a and b and c and d and e and f and g and h
|
||||
|
||||
|
||||
func test_hollywood_geometry_stays_inside_the_map_budget() -> bool:
|
||||
var root := Node3D.new()
|
||||
var builder := WorldBuilder.new(root)
|
||||
builder.build()
|
||||
var triangles := builder.world_triangle_count()
|
||||
var meshes := builder.world_mesh_count()
|
||||
print("hollywood map: %d triangles across %d meshes" % [triangles, meshes])
|
||||
var a := TestUtils.check(triangles < 150000,
|
||||
"landmark triangle budget stays under 150k (got %d)" % triangles)
|
||||
var b := TestUtils.check(meshes < 600,
|
||||
"landmark draw-call count stays under 600 meshes (got %d)" % meshes)
|
||||
root.free()
|
||||
return a and b
|
||||
|
||||
func test_navigation_mesh_matches_each_venue_bounds() -> bool:
|
||||
var problems: Array[String] = []
|
||||
for id in ["hollywood_building", "joke_shop", "tv_studio"]:
|
||||
|
||||
Reference in new issue
Block a user