Files
Funkin/source/funkin/util/plugins/WatchPlugin.hx
T

56 lines
1.6 KiB
Haxe

package funkin.util.plugins;
import flixel.FlxBasic;
/**
* A plugin which adds functionality to display several universally important values
* in the Flixel variable watch window.
*/
class WatchPlugin extends FlxBasic
{
public function new()
{
super();
}
/**
* Initialize the plugin.
*/
public static function initialize():Void
{
FlxG.plugins.addPlugin(new WatchPlugin());
}
override public function update(elapsed:Float):Void
{
super.update(elapsed);
var stateClassName = Type.getClassName(Type.getClass(FlxG.state));
FlxG.watch.addQuick('currentState', stateClassName);
var subStateClassNames = [];
var subState = FlxG.state.subState;
while (subState != null)
{
subStateClassNames.push(Type.getClassName(Type.getClass(subState)));
subState = subState.subState;
}
FlxG.watch.addQuick('currentSubStates', subStateClassNames.join(', '));
FlxG.watch.addQuick('songPosition', Conductor.instance.songPosition);
FlxG.watch.addQuick('songPositionNoOffset', Conductor.instance.songPosition + Conductor.instance.instrumentalOffset);
FlxG.watch.addQuick('musicLength', FlxG.sound?.music?.length ?? 0.0);
FlxG.watch.addQuick('musicTime', FlxG.sound?.music?.time ?? 0.0);
FlxG.watch.addQuick('bpm', Conductor.instance.bpm);
FlxG.watch.addQuick('currentMeasureTime', Conductor.instance.currentMeasureTime);
FlxG.watch.addQuick('currentBeatTime', Conductor.instance.currentBeatTime);
FlxG.watch.addQuick('currentStepTime', Conductor.instance.currentStepTime);
}
override public function destroy():Void
{
super.destroy();
}
}