Files
gamedev-the-steward/world/jajce/RiverbankResourceCluster.gd
2026-07-18 19:09:04 +02:00

82 lines
2.1 KiB
GDScript

class_name RiverbankResourceCluster
extends TerrainResourceCluster
const FERN_OFFSETS := [
Vector3(-0.8, 0.0, -10.8),
Vector3(1.1, 0.0, -8.7),
Vector3(2.9, 0.0, -6.8),
Vector3(-1.4, 0.0, -4.6),
Vector3(1.8, 0.0, -2.7),
Vector3(3.6, 0.0, -0.5),
Vector3(-0.5, 0.0, 1.2),
Vector3(2.4, 0.0, 3.4),
Vector3(-1.8, 0.0, 5.7),
Vector3(1.4, 0.0, 7.6),
Vector3(3.8, 0.0, 9.4),
Vector3(0.2, 0.0, 11.8),
]
const FLOWER_OFFSETS := [
Vector3(0.2, 0.0, -10.2),
Vector3(2.2, 0.0, -7.5),
Vector3(-0.4, 0.0, -5.5),
Vector3(3.4, 0.0, -3.2),
Vector3(0.8, 0.0, 0.1),
Vector3(2.8, 0.0, 2.1),
Vector3(-0.7, 0.0, 4.4),
Vector3(2.0, 0.0, 6.4),
Vector3(0.4, 0.0, 9.8),
]
const STONE_OFFSETS := [
Vector3(3.9, 0.0, -9.6),
Vector3(-1.2, 0.0, -7.2),
Vector3(3.2, 0.0, -4.3),
Vector3(-0.7, 0.0, -1.2),
Vector3(3.7, 0.0, 4.6),
Vector3(-1.1, 0.0, 8.4),
Vector3(2.7, 0.0, 11.2),
]
func _build_understory() -> void:
var fern_material := StandardMaterial3D.new()
fern_material.albedo_color = Color("#315f35")
fern_material.roughness = 0.94
fern_material.cull_mode = BaseMaterial3D.CULL_DISABLED
_assign_multimesh(
$DecorativeInstances/Understory/FernClumps,
_create_fern_mesh(fern_material),
FERN_OFFSETS,
Vector3(0.8, 0.8, 0.8),
0.03
)
var flower_mesh := SphereMesh.new()
flower_mesh.radius = 0.13
flower_mesh.height = 0.22
flower_mesh.radial_segments = 7
flower_mesh.rings = 4
var flower_material := StandardMaterial3D.new()
flower_material.albedo_color = Color("#efc55a")
flower_material.roughness = 0.82
flower_mesh.material = flower_material
_assign_multimesh(
$DecorativeInstances/Understory/FlowerClumps, flower_mesh, FLOWER_OFFSETS, Vector3.ONE, 0.2
)
var stone_mesh := SphereMesh.new()
stone_mesh.radius = 1.0
stone_mesh.height = 2.0
stone_mesh.radial_segments = 8
stone_mesh.rings = 4
var stone_material := StandardMaterial3D.new()
stone_material.albedo_color = Color("#77786b")
stone_material.roughness = 0.96
stone_mesh.material = stone_material
_assign_multimesh(
$DecorativeInstances/Understory/BankStones,
stone_mesh,
STONE_OFFSETS,
Vector3(0.62, 0.24, 0.44),
0.22
)