ported to Godot 5 and fixed collisions on tooling script
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Has been cancelled

This commit is contained in:
2025-09-16 09:40:20 +02:00
parent 63ea62ff74
commit d15542e4ed
9 changed files with 43 additions and 132 deletions

View File

@@ -1,9 +1,12 @@
@tool
extends Node3D
@export_tool_button("Clear collisions", "Callable") var clear_col_action = clear_collisions
@export_tool_button("Generate collisions", "Callable") var generate_col_action = generate_collisions
@export_group("Layers and masks")
@export_flags_3d_physics var collision_layer
@export_flags_3d_physics var collision_mask
func get_all_children_of_type(node, type) -> Array:
var nodes : Array = []
for child in node.get_children():
@@ -21,12 +24,17 @@ func clear_collisions_on_meshes(meshes: Array):
func generate_collisions_on_meshes(meshes: Array):
for mesh_instance: MeshInstance3D in meshes:
mesh_instance.create_trimesh_collision()
func set_collision_mask_on_bodies(bodies: Array):
for staticbody: StaticBody3D in bodies:
staticbody.collision_layer = collision_layer
staticbody.collision_mask = collision_mask
func generate_collisions():
var mesh_instances = get_all_children_of_type(self, MeshInstance3D)
clear_collisions_on_meshes(mesh_instances)
generate_collisions_on_meshes(mesh_instances)
func clear_collisions():
var mesh_instances = get_all_children_of_type(self, MeshInstance3D)
clear_collisions_on_meshes(mesh_instances)
var staticbody_instances = get_all_children_of_type(self, StaticBody3D)
set_collision_mask_on_bodies(staticbody_instances)