WIP: feat(scene) initial beauty baseline — terrain textures, sky, foam, mist, foliage, shadows
- Add 3 Terrain3D texture assets (limestone, valley grass, warm soil) - Sculpt initial Terrain3D heightmap with ridge, valley, waterfall drop - Replace plain water with emissive-tinged material - Add foam mesh, mist spheres, and procedural sky with valley fog - Add 10 StylizedTree instances around village perimeter - Enable directional light shadows with extended cascade range - Add tree height snapping to terrain surface - Add refined scaffold tests for material count, terrain height, foliage, sky, fog - Add terrain texture PNGs and StylizedTree.tscn scene - Add generate_jajce_terrain.gd tool
This commit is contained in:
@@ -22,9 +22,26 @@ func _run() -> void:
|
||||
terrain.data_directory == "res://terrain/jajce/data",
|
||||
"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()
|
||||
)
|
||||
_check(
|
||||
absf(terrain.data.get_height(Vector3.ZERO)) < 0.1,
|
||||
"Central gameplay area should remain level for current navigation"
|
||||
)
|
||||
_check(
|
||||
terrain.data.get_height(Vector3(-72, 0, 18)) > 10.0,
|
||||
"Authored terrain should raise the western fortress ridge"
|
||||
)
|
||||
_check(world.has_node("WaterRoot"), "JajceWorld should expose WaterRoot")
|
||||
_check(world.has_node("VillageRoot"), "JajceWorld should expose VillageRoot")
|
||||
_check(world.has_node("FoliageRoot"), "JajceWorld should expose FoliageRoot")
|
||||
_check(
|
||||
world.get_node("FoliageRoot").get_child_count() >= 10,
|
||||
"JajceWorld should include restrained authored foliage clusters"
|
||||
)
|
||||
_check(
|
||||
world.has_node("GreyboxLandmarks/FortressBlockout"),
|
||||
"Greybox should include the fortress landmark"
|
||||
@@ -33,6 +50,18 @@ func _run() -> void:
|
||||
world.has_node("WaterRoot/WaterfallGreybox"),
|
||||
"Greybox should include the waterfall drop"
|
||||
)
|
||||
_check(
|
||||
world.has_node("WaterRoot/WaterfallFoam")
|
||||
and world.has_node("WaterRoot/Mist_01"),
|
||||
"Waterfall should include readable foam and mist layers"
|
||||
)
|
||||
var environment: Environment = (
|
||||
world.get_node("WorldEnvironment") as WorldEnvironment
|
||||
).environment
|
||||
_check(
|
||||
environment.fog_enabled and environment.sky != null,
|
||||
"Jajce environment should provide sky and restrained valley fog"
|
||||
)
|
||||
_check(
|
||||
world.has_node("VillageRoot/MillBlockout")
|
||||
and world.has_node("VillageRoot/BridgeBlockout"),
|
||||
|
||||
Reference in New Issue
Block a user