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

+7
View File
@@ -36,6 +36,10 @@ const T_LIMESTONE_NORMAL := preload(PICK_DIR + "stone_steps_normal.png")
## `stone_steps` tile reads as small pavers, not wall ashlar).
const T_ASHLAR := preload(PICK_DIR + "limestone_ashlar.png")
const T_ASHLAR_NORMAL := preload(PICK_DIR + "limestone_ashlar_normal.png")
## Dark stucco for the Comedy Store hall wall: flat matte charcoal (the concrete
## paver tile read as grey masonry, not the building's flat black surface).
const T_STUCCO := preload(PICK_DIR + "dark_stucco.png")
const T_STUCCO_NORMAL := preload(PICK_DIR + "dark_stucco_normal.png")
## Roughness / metallic pairs per surface role. Exposed so tests and tooling can
## assert the profiles instead of hard-coding numbers twice.
@@ -118,6 +122,9 @@ static func limestone(tint: Color = Color(1, 1, 1), uv_scale: Vector2 = Vector2(
static func ashlar(tint: Color = Color(1, 1, 1), uv_scale: Vector2 = Vector2(6, 3)) -> StandardMaterial3D:
return textured(T_ASHLAR, tint, uv_scale, "stone", T_ASHLAR_NORMAL)
static func stucco(tint: Color = Color(1, 1, 1), uv_scale: Vector2 = Vector2(6, 3)) -> StandardMaterial3D:
return textured(T_STUCCO, tint, uv_scale, "concrete", T_STUCCO_NORMAL)
static func asphalt(tint: Color = Color(1, 1, 1), uv_scale: Vector2 = Vector2(30, 7),
wet: bool = false) -> StandardMaterial3D:
var texture: Texture2D = T_ASPHALT_WET if wet else T_ASPHALT
+6 -3
View File
@@ -10,6 +10,7 @@ const T_ASPHALT := preload(PICK_DIR + "asphalt.png")
const T_AWNING := preload(PICK_DIR + "awning_canvas.png")
const T_LIMESTONE := preload(PICK_DIR + "stone_steps.png")
const T_ASHLAR := preload(PICK_DIR + "limestone_ashlar.png")
const T_STUCCO := preload(PICK_DIR + "dark_stucco.png")
## One skyline panorama per shift phase (realism pass): hazy daylight, warm dusk
## with lit windows, and a night city. The old single strip was a black silhouette.
const T_SKYLINE_DAY := preload(PICK_DIR + "skyline_day.png")
@@ -374,10 +375,12 @@ func _build_comedy_store_building() -> void:
var black_deep := Color(0.045, 0.045, 0.05)
var signature := Color(0.58, 0.56, 0.52)
var red := Color(0.42, 0.035, 0.045)
# Main hall. The black stucco is the real building's dominant surface; the
# concrete texture keeps it matte instead of turning it into glossy paint.
# Main hall. The black stucco is the real building's dominant surface: a flat
# matte charcoal tile now replaces the grey paver texture so the wall reads as
# dark plaster, not masonry. The 0.105 tint keeps the effective value near the
# reference's flat black while the fine grain stops it looking like glossy paint.
_add_box(building, Vector3(w, h, d), Vector3(0, h * 0.5, cz), black,
false, T_CONCRETE, Vector2(w * 0.42, h * 0.42), "concrete")
false, T_STUCCO, Vector2(w * 0.42, h * 0.42), "concrete")
# Low plinth and a thin parapet cap so the roofline reads against the hill.
_add_box(building, Vector3(w, 0.30, 0.34), Vector3(0, 0.15, front + 0.05),
Color(0.07, 0.07, 0.075), true, null, Vector2.ONE, "stone")