Loads of crap
This commit is contained in:
parent
b5bf7619e6
commit
1dc768ad27
725 changed files with 15096 additions and 191 deletions
|
|
@ -1,31 +1,23 @@
|
|||
# GrassMultiMesh.gd (assuming this is your MultiMeshInstance3D script)
|
||||
# GrassMultiMesh.gd
|
||||
extends MultiMeshInstance3D
|
||||
|
||||
var mm: MultiMesh
|
||||
@onready var parent_node: GrassController
|
||||
var parent_node: GrassController
|
||||
var rng: RandomClass = RandomClass.new()
|
||||
|
||||
func _ready() -> void:
|
||||
# Use call_deferred to ensure proper initialization order
|
||||
call_deferred("_setup_connections")
|
||||
|
||||
func _setup_connections() -> void:
|
||||
parent_node = get_parent() as GrassController
|
||||
if parent_node == null:
|
||||
Log.pr("Error: Parent node is not a GrassController!")
|
||||
return
|
||||
|
||||
parent_node.grass_data_ready.connect(_on_grass_data_ready)
|
||||
Log.pr("Connected to grass_data_ready signal")
|
||||
|
||||
func _on_grass_data_ready():
|
||||
Log.pr("Received grass_data_ready signal, setting up multimesh")
|
||||
setup_multimesh()
|
||||
|
||||
func setup_multimesh() -> void:
|
||||
if parent_node == null:
|
||||
Log.pr("Error: Parent node not available in setup_multimesh")
|
||||
return
|
||||
|
||||
# Use the same RNG seed as the parent for consistency
|
||||
if parent_node.parent_node and parent_node.parent_node.cell_info:
|
||||
rng.set_seed(parent_node.parent_node.cell_info.cell_seed)
|
||||
|
||||
# Load the mesh resource directly
|
||||
var mesh = load("res://Stages/Test3D/assets/stylizedGrassMeshes/grass2_mesh.res")
|
||||
if mesh == null:
|
||||
|
|
@ -40,20 +32,18 @@ func setup_multimesh() -> void:
|
|||
mm.instance_count = parent_node.grass_instance_range
|
||||
mm.mesh = mesh
|
||||
|
||||
Log.pr("Setting up MultiMesh with " + str(mm.instance_count) + " instances")
|
||||
|
||||
# Generate random positions for grass
|
||||
# Generate random positions for grass using seeded RNG
|
||||
for i in range(mm.instance_count):
|
||||
var random_pos = Vector3(
|
||||
randf_range(-1.0, 1.0),
|
||||
rng.randf_range(-1.0, 1.0),
|
||||
0.0,
|
||||
randf_range(-1.0, 1.0)
|
||||
rng.randf_range(-1.0, 1.0)
|
||||
)
|
||||
|
||||
var random_rotation = randf_range(0.0, TAU)
|
||||
var random_rotation = rng.randf_range(0.0, TAU)
|
||||
var basis = Basis(Vector3.UP, random_rotation)
|
||||
|
||||
var random_scale = randf_range(0.05, 0.3)
|
||||
var random_scale = rng.randf_range(0.05, 0.3)
|
||||
basis = basis.scaled(Vector3(random_scale, random_scale, random_scale))
|
||||
|
||||
var tx = Transform3D(basis, random_pos)
|
||||
|
|
@ -62,5 +52,3 @@ func setup_multimesh() -> void:
|
|||
# Assign the MultiMesh to this node
|
||||
multimesh = mm
|
||||
cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF
|
||||
|
||||
Log.pr("MultiMesh setup complete with " + str(multimesh.instance_count) + " instances")
|
||||
Loading…
Add table
Add a link
Reference in a new issue