Funkin/source/funkin/util/SortUtil.hx

49 lines
1.1 KiB
Haxe
Raw Normal View History

package funkin.util;
2022-01-26 14:19:57 -05:00
2022-02-23 16:49:54 -05:00
#if !macro
import flixel.FlxBasic;
2022-01-26 14:19:57 -05:00
import flixel.util.FlxSort;
2022-02-23 16:49:54 -05:00
#end
2022-01-26 14:19:57 -05:00
class SortUtil
{
/**
* You can use this function in FlxTypedGroup.sort() to sort FlxObjects by their z-index values.
* The value defaults to 0, but by assigning it you can easily rearrange objects as desired.
*/
public static inline function byZIndex(Order:Int, Obj1:FlxBasic, Obj2:FlxBasic):Int
{
if (Obj1 == null || Obj2 == null) return 0;
return FlxSort.byValues(Order, Obj1.zIndex, Obj2.zIndex);
}
/**
* Given two Notes, returns 1 or -1 based on whether `a` or `b` has an earlier strumtime.
2023-06-08 16:30:45 -04:00
*
* @param order Either `FlxSort.ASCENDING` or `FlxSort.DESCENDING`
*/
public static inline function byStrumtime(order:Int, a:Note, b:Note)
{
return FlxSort.byValues(order, a.data.strumTime, b.data.strumTime);
}
public static inline function alphabetically(a:String, b:String)
{
a = a.toUpperCase();
b = b.toUpperCase();
if (a < b)
{
return -1;
}
else if (a > b)
{
return 1;
}
else
{
return 0;
}
}
2022-01-26 14:19:57 -05:00
}