road-rage-tank/addons/voronoishatter/tools/voronoicollection.gd

24 lines
1.1 KiB
GDScript

## A simple wrapper node that contains the fractured meshes generated from a VoronoiShatter node.
@tool
extends Node3D
class_name VoronoiCollection
@export_tool_button("Create Rigid Bodies", "RigidBody3D") var create_rigid_bodies_callback = create_rigid_bodies
func create_rigid_bodies():
for child in get_children():
if is_instance_of(child, MeshInstance3D):
var mesh_instance: MeshInstance3D = child as MeshInstance3D
mesh_instance.create_convex_collision(true, true)
for maybe_static in mesh_instance.get_children():
if is_instance_of(maybe_static, StaticBody3D):
var static_body: StaticBody3D = maybe_static
var rigid_body = RigidBody3D.new()
rigid_body.name = "Rigid_" + mesh_instance.name
static_body.replace_by(rigid_body)
rigid_body.reparent(self)
mesh_instance.reparent(rigid_body)
mesh_instance.scale = rigid_body.scale
rigid_body.scale = Vector3.ONE