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 )