From 4cf3eb166a1735a53b737a5fcf79f5eda520af32 Mon Sep 17 00:00:00 2001 From: LUCASTUCIOUS Date: Sat, 3 Aug 2024 22:42:28 +0200 Subject: [PATCH] Fix Y sorting and filter by type --- core/Cursor.gd | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/Cursor.gd b/core/Cursor.gd index dd4f65c..a23adc6 100644 --- a/core/Cursor.gd +++ b/core/Cursor.gd @@ -50,7 +50,7 @@ func pointcast(): #endregion if (hoveredColliders.size() > 0): if (hoveredColliders.size() >= 2): - sortByPosY(hoveredColliders,false) + hoveredColliders = sortByPosY(hoveredColliders,false) if (hoveredColliders[0] != hoveredCollider): $GrabTimer.stop() if (hoveredCollider and hoveredCollider.has_method("on_unhover")): @@ -81,13 +81,19 @@ func resetCast(bFull = false): ## Sort objects by parent's Y position func sortByPosY(objects: Array, ascending_order: bool = true): var _tempArray :Array + var _tempStickerArray :Array _tempArray = objects - # Inline comparison function + #filter stickers + for _collider in _tempArray: + if _collider is Sticker: + _tempStickerArray.append(_collider) + if _tempStickerArray.size() > 0: + _tempArray = _tempStickerArray _tempArray.sort_custom(comparePosY) # Reverse if descending order is required if not ascending_order: _tempArray.reverse() - objects = _tempArray + return _tempArray func comparePosY(a, b): #print("Compare ",a," at ",a.position.y, " and ",b," at ",b.position.y )