extends Area2D
@onready var collision_shape_2d: CollisionShape2D = $CollisionShape2D
func _physics_process(delta: float) -> void:
global_position = get_global_mouse_position()
var total_dist = 0.0
for area in get_overlapping_areas():
for owner_idx in area.get_shape_owners():
for shape_idx in area.shape_owner_get_shape_count(owner_idx):
var other_shape = area.shape_owner_get_shape(owner_idx, shape_idx)
var contacts = collision_shape_2d.shape.collide_and_get_contacts(collision_shape_2d.global_transform, other_shape, area.global_transform * area.shape_owner_get_transform(owner_idx))
for i in range(0, contacts.size(), 2):
var a = contacts[i]
var b = contacts[i+1]
var dist = (b - a).length()
total_dist += dist
if ceil(total_dist) >= collision_shape_2d.shape.radius * 2:
collision_shape_2d.debug_color = Color.RED
else:
collision_shape_2d.debug_color = Color.BLUE