Files
CodenameEngine/source/funkin/editors/charter/CharterEventGroup.hx
T
⍚~Nex 39aadbe8a0 finished global/local events + HUGE SAVES FIX
HOW DID WE NEVER NOTICE??
anyways im really happy on how everything came out :D
more than a fix it also ended up like a rewrite!
2025-03-09 06:11:36 +01:00

58 lines
1.4 KiB
Haxe

package funkin.editors.charter;
import flixel.util.FlxSort;
import funkin.editors.charter.CharterBackdropGroup.EventBackdrop;
class CharterEventGroup extends FlxTypedGroup<CharterEvent> {
public var eventsBackdrop:EventBackdrop;
public var autoSort:Bool = true;
var __lastSort:Int = 0;
public override function update(elapsed:Float) {
filterEvents();
if (autoSort && members.length != __lastSort)
sortEvents();
super.update(elapsed);
}
public override function remove(v:CharterEvent, force:Bool = true):CharterEvent {
v.ID = -1;
return super.remove(v, force);
}
public override function draw() {
for (event in members) {
event.eventsBackdrop = eventsBackdrop;
event.snappedToGrid = true;
event.cameras = cameras;
}
super.draw();
}
public inline function sortEvents() {
__lastSort = members.length;
this.sort(sortEventsFilter);
updateEventsIDs();
updateEventsBackdrop();
}
public inline function updateEventsIDs()
for (i => n in members) n.ID = i;
public inline function updateEventsBackdrop()
for (event in members)
event.eventsBackdrop = eventsBackdrop;
public inline function filterEvents() {
for (event in members)
if (event.events.length == 0) {
remove(event, true);
event.kill();
}
}
public dynamic function sortEventsFilter(i:Int, e1:CharterEvent, e2:CharterEvent)
return FlxSort.byValues(FlxSort.ASCENDING, e1.step, e2.step);
}