From 0a3919ce4cbe8157ae9bb4c94b069bddac660a45 Mon Sep 17 00:00:00 2001 From: Collin Campbell Date: Mon, 24 Nov 2025 20:03:52 -0500 Subject: [PATCH] Add Center Function on Holes Calculates the center of the hole. --- .../environment/destructable/destructable_wall.gd | 12 ++++++------ .../environment/destructable/resource/hole.gd | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/demo/assets/scripts/environment/destructable/destructable_wall.gd b/demo/assets/scripts/environment/destructable/destructable_wall.gd index d2ddb2a..6d8182b 100644 --- a/demo/assets/scripts/environment/destructable/destructable_wall.gd +++ b/demo/assets/scripts/environment/destructable/destructable_wall.gd @@ -149,18 +149,18 @@ func hit(position: Vector3): # translate the cutter var hole_vectors = Transform2D(0, hole_vector2_offset) * cutter - var rtree_search = [] - for hv in hole_vectors: - rtree_search.append_array(inner_rtree.query(hv)) - - var draw = _add_hole(hole_vectors, rtree_search) + var draw = _add_hole(hole_vectors) if draw: _re_draw() -func _add_hole(new_hole: PackedVector2Array, holes_id: PackedInt32Array) -> bool: +func _add_hole(new_hole: PackedVector2Array) -> bool: var ids_to_remove = [] + var holes_id = [] + for vector in new_hole: + holes_id.append_array(inner_rtree.query(vector)) + # validate that the hole is valid var boundary_polygon = Geometry2D.offset_polygon(outer_polygon, -edge_non_fracture) diff --git a/demo/assets/scripts/environment/destructable/resource/hole.gd b/demo/assets/scripts/environment/destructable/resource/hole.gd index f55770f..91fa969 100644 --- a/demo/assets/scripts/environment/destructable/resource/hole.gd +++ b/demo/assets/scripts/environment/destructable/resource/hole.gd @@ -8,3 +8,11 @@ var vectors: PackedVector2Array func _init(hole_id: int, vectors: PackedVector2Array): self.hole_id = hole_id self.vectors = vectors + +func center(): + var avg_vert = Vector2.ZERO + + for v in vectors: + avg_vert += v + + return avg_vert / len(vectors)