ported to Godot 5 and fixed collisions on tooling script
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user