Map 1: rebuild Hollywood as the El Capitan landmark
Full build / Import + headless tests (push) Successful in 37s
Full build / Full desktop build + optional release (push) Skipped

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:
zwitschi committed 2026-11-02 12:34:48 +01:00
1 parent 3f335481d6
commit 74dc1fdc1d
50 files changed
+1176 -100

No files matched your search

+7 -8
View File
@@ -208,15 +208,14 @@ func test_world_loads_the_blender_library_props() -> bool:
var a := TestUtils.check(builder.fallback_props.is_empty(),
"no primitive prop fallback (fallbacks: %s)" % str(builder.fallback_props))
var b := TestUtils.check(builder.library_props.has("street_lamp")
and builder.library_props.has("street_tree")
and builder.library_props.has("bollard")
and builder.library_props.has("palm_tree")
and builder.library_props.has("sedan"),
and builder.library_props.has("palm_tree"),
"replacement and new props come from the library (%d)" % builder.library_props.size())
var c := TestUtils.check(root.get_node_or_null("Building/LibraryDoubleDoor") != null
and root.get_node_or_null("LibraryMarquee") != null
and root.get_node_or_null("ParkedSedan") != null,
"library door, marquee and sedan are placed")
var c := TestUtils.check(root.get_node_or_null("NeighbourBlocks/ElCapitanTheatre") != null
and root.get_node_or_null("OvationHollywood/OvationSign") != null
and root.get_node_or_null("WalkOfFame") != null
and root.get_node_or_null("Building/FriezeInscription") != null,
"the landmark neighbours, opposite block, Walk of Fame and frieze are placed")
var d := TestUtils.check(not builder._lamp_bulb_mats.is_empty()
and not builder._marquee_emissive.is_empty(),
"library lamps/marquee expose emissive materials")
@@ -248,7 +247,7 @@ func test_world_facade_windows_light_at_night() -> bool:
var root := Node3D.new()
var builder := WorldBuilder.new(root)
builder.build()
var a := TestUtils.check(builder._window_mats.size() >= 8, "window panes built")
var a := TestUtils.check(builder._window_mats.size() >= 3, "door transom panes built")
builder.set_night_mode(true)
var lit: bool = builder._window_mats[0].emission_energy_multiplier > 0.0
builder.set_night_mode(false)