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 )