56 lines
1.6 KiB
Haxe
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();
|
|
}
|
|
}
|