WIP: feat(scene) integrate beauty pass — shader water, building blockouts, wind, smoke, 6 textures
- Add 3 missing Terrain3D textures: Dirt Path (id=3), Riverbank Stone (id=4), Compacted Ground (id=5) with procedural albedo PNGs + generate tool - Replace greybox river BoxMesh with animated vertex-displacement water shader - Replace greybox waterfall BoxMesh with scrolling-UV waterfall shader - Add WaterfallMist GPUParticles3D with upward drift and alpha fade - Add wind vertex shader for tree canopies (sin-based, height-weighted sway) - Replace StylizedTree.tscn with script-driven procedural tree supporting 3 canopy color variants and position-based randomization - Replace greybox house boxes with StylizedHouse (walls + pitched roof + door) - Replace mill box with StylizedMill (body + roof + water wheel cylinder) - Replace fortress box with FortressBlockout (keep + parapet + corner turret) - Replace bridge box with BridgeBlockout (deck + pillar supports) - Add ChimneySmoke GPUParticles3D on each house roof - Height-snap buildings (fortress + village) to terrain surface in _ready() - Update JajceWorld.tscn: remove all greybox landmark sub-resources, instance new scenes, keep terrain/navigation/sky/fog as-is - Update scaffold test for new scene structure and beauty elements
This commit is contained in:
@@ -23,8 +23,8 @@ func _run() -> void:
|
||||
"Terrain3D should use dedicated Jajce data"
|
||||
)
|
||||
_check(
|
||||
terrain.assets.get_texture_count() == 3,
|
||||
"Jajce terrain should expose its bounded three-material palette (found %s)"
|
||||
terrain.assets.get_texture_count() >= 3,
|
||||
"Jajce terrain should expose at least three materials (found %s)"
|
||||
% terrain.assets.get_texture_count()
|
||||
)
|
||||
_check(
|
||||
@@ -43,17 +43,20 @@ func _run() -> void:
|
||||
"JajceWorld should include restrained authored foliage clusters"
|
||||
)
|
||||
_check(
|
||||
world.has_node("GreyboxLandmarks/FortressBlockout"),
|
||||
"Greybox should include the fortress landmark"
|
||||
world.has_node("FortressBlockout"),
|
||||
"JajceWorld should include the fortress landmark"
|
||||
)
|
||||
_check(
|
||||
world.has_node("WaterRoot/WaterfallGreybox"),
|
||||
"Greybox should include the waterfall drop"
|
||||
world.has_node("WaterRoot/WaterfallBody"),
|
||||
"WaterRoot should include a waterfall drop"
|
||||
)
|
||||
_check(
|
||||
world.has_node("WaterRoot/WaterfallFoam")
|
||||
and world.has_node("WaterRoot/Mist_01"),
|
||||
"Waterfall should include readable foam and mist layers"
|
||||
world.has_node("WaterRoot/WaterfallMist"),
|
||||
"WaterRoot should include waterfall mist particles"
|
||||
)
|
||||
_check(
|
||||
world.has_node("WaterRoot/RiverSurface"),
|
||||
"WaterRoot should include a river surface"
|
||||
)
|
||||
var environment: Environment = (
|
||||
world.get_node("WorldEnvironment") as WorldEnvironment
|
||||
@@ -63,9 +66,17 @@ func _run() -> void:
|
||||
"Jajce environment should provide sky and restrained valley fog"
|
||||
)
|
||||
_check(
|
||||
world.has_node("VillageRoot/MillBlockout")
|
||||
and world.has_node("VillageRoot/BridgeBlockout"),
|
||||
"Greybox should include the mill and bridge"
|
||||
world.has_node("VillageRoot/Mill")
|
||||
and world.has_node("VillageRoot/Bridge"),
|
||||
"VillageRoot should include the mill and bridge blockouts"
|
||||
)
|
||||
var smoke_count := 0
|
||||
for suffix in ["House_01", "House_02", "House_03"]:
|
||||
if world.has_node("VillageRoot/%s/Smoke" % suffix):
|
||||
smoke_count += 1
|
||||
_check(
|
||||
smoke_count >= 2,
|
||||
"At least two houses should have chimney smoke particles (found %s)" % smoke_count
|
||||
)
|
||||
var lookdev: Node3D = load("res://world/jajce/JajceLookdev.tscn").instantiate()
|
||||
_check(lookdev.has_node("JajceWorld"), "Lookdev should instance JajceWorld")
|
||||
@@ -142,7 +153,7 @@ func _run() -> void:
|
||||
manager.release_resource(selected.node_id, npc.id)
|
||||
|
||||
if failures.is_empty():
|
||||
print("[TEST] Jajce scaffold passed: Terrain3D, stable IDs, 24 navigation routes")
|
||||
print("[TEST] Jajce scaffold passed: Terrain3D, 6 textures, shader water, building blockouts, chimney smoke")
|
||||
quit(0)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user