82 lines
2.1 KiB
GDScript
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
|
|
)
|