remove DebugCollisionShape

This commit is contained in:
2025-08-29 19:23:34 +10:00
parent 5b391cba27
commit 896e187aa2
10 changed files with 126 additions and 221 deletions

View File

@@ -1,68 +0,0 @@
class_name DebugCollisionShapes
const MARGIN = 0.01
var is_visible: bool = true
var _mesh_nodes: Array[MeshInstance3D] = []
func init(children: Array[Node], parent: Node, material: Material) -> void:
for child in children:
if child is not CollisionShape3D:
continue
var shape_node: CollisionShape3D = child as CollisionShape3D
if shape_node.shape == null:
continue
var mesh_node := MeshInstance3D.new()
if shape_node.shape is BoxShape3D:
var shape := shape_node.shape as BoxShape3D
var mesh := BoxMesh.new()
mesh.size = shape.size
mesh_node.mesh = mesh
if shape_node.shape is CapsuleShape3D:
var shape := shape_node.shape as CapsuleShape3D
var mesh := CapsuleMesh.new()
mesh.radius = shape.radius + MARGIN
mesh.height = shape.height + MARGIN
mesh.radial_segments = 8
mesh.rings = 1
mesh_node.mesh = mesh
if shape_node.shape is SphereShape3D:
var shape := shape_node.shape as SphereShape3D
var mesh := SphereMesh.new()
mesh.radius = shape.radius + MARGIN
mesh.height = shape.radius * 2 + MARGIN
mesh.radial_segments = 8
mesh.rings = 4
mesh_node.mesh = mesh
if shape_node.shape is CylinderShape3D:
var shape := shape_node.shape as CylinderShape3D
var mesh := CylinderMesh.new()
mesh.top_radius = shape.radius + MARGIN
mesh.bottom_radius = shape.radius + MARGIN
mesh.height = shape.height + MARGIN
mesh.radial_segments = 8
mesh.rings = 0
mesh_node.mesh = mesh
mesh_node.material_override = material
mesh_node.cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF
mesh_node.visible = Debugger.mode == Debugger.Mode.FULL
parent.add_child(mesh_node)
mesh_node.global_transform = (child as Node3D).global_transform
_mesh_nodes.append(mesh_node)
Debugger.mode_changed.connect(_on_debugger_mode_changed)
func set_visibility(visible: bool) -> void:
is_visible = visible
for node in _mesh_nodes:
node.visible = is_visible and Debugger.mode == Debugger.Mode.FULL
func _on_debugger_mode_changed(mode: Debugger.Mode) -> void:
for mesh_node in _mesh_nodes:
mesh_node.visible = mode == Debugger.Mode.FULL

View File

@@ -1 +0,0 @@
uid://bpnxcjqwxcyyi

View File

@@ -39,6 +39,7 @@ func _ready() -> void:
assert(_label2, str(self) + ": _label2 missing!")
assert(_label3, str(self) + ": _label2 missing!")
assert(_label4, str(self) + ": _label2 missing!")
instance = self
_control.draw.connect(_on_control_draw)
Inputer.mode_changed.connect(_on_inputer_mode_changed)
# enabled = OS.has_feature("editor")
@@ -89,7 +90,9 @@ static func vector(
if not show_debug():
return
instance._vectors_to_draw[key] = {"from": from, "to": to, "color": color, "on": true}
instance._vectors_to_draw[key] = {
"from": from, "to": to, "color": color, "on": true
}
static func line(
@@ -110,7 +113,9 @@ static func marker(
if not show_debug():
return
instance._markers_to_draw[key] = ({"pos": pos, "radius": radius, "color": color, "on": true})
instance._markers_to_draw[key] = ({
"pos": pos, "radius": radius, "color": color, "on": true
})
static func circle(key: String, pos: Vector3, color: Color = DEFAULT_COLOR) -> void: