23 lines
725 B
GDScript3
Raw Normal View History

2024-02-17 22:17:35 +00:00
class_name TreeGenerator
extends Generator
@export var tree_materials: Array[Material]
@export var leaf_materials: Array[Material]
func _ready():
super._ready()
func generate(x: int, z: int) -> Node3D:
var instance := super.generate(x, z)
randomize_materials(instance)
return instance
func randomize_materials(instance: Node):
var tree := instance.find_child("tree") as MeshInstance3D
var tree_material := tree_materials[randi_range(0, tree_materials.size()-1)]
tree.set_surface_override_material(0, tree_material)
var leaves := instance.find_child("leaves") as MeshInstance3D
var leaf_material := leaf_materials[randi_range(0, leaf_materials.size()-1)]
leaves.set_surface_override_material(0, leaf_material)