Implement FPS counter toggle; Refactor options
This commit is contained in:
@ -1,6 +1,159 @@
|
||||
package;
|
||||
|
||||
class Options
|
||||
import Controls.KeyboardScheme;
|
||||
import flixel.FlxG;
|
||||
import openfl.display.FPS;
|
||||
import openfl.Lib;
|
||||
|
||||
class Option
|
||||
{
|
||||
public static var masterVolume:Float = 1;
|
||||
public function new()
|
||||
{
|
||||
display = updateDisplay();
|
||||
}
|
||||
|
||||
private var display:String;
|
||||
public final function getDisplay():String
|
||||
{
|
||||
return display;
|
||||
}
|
||||
|
||||
// Returns whether the label is to be updated.
|
||||
public function press():Bool { return throw "stub!"; }
|
||||
private function updateDisplay():String { return throw "stub!"; }
|
||||
}
|
||||
|
||||
class DFJKOption extends Option
|
||||
{
|
||||
private var controls:Controls;
|
||||
|
||||
public function new(controls:Controls)
|
||||
{
|
||||
super();
|
||||
this.controls = controls;
|
||||
}
|
||||
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.dfjk = !FlxG.save.data.dfjk;
|
||||
|
||||
if (FlxG.save.data.dfjk)
|
||||
controls.setKeyboardScheme(KeyboardScheme.Solo, true);
|
||||
else
|
||||
controls.setKeyboardScheme(KeyboardScheme.Duo(true), true);
|
||||
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return FlxG.save.data.dfjk ? 'DFJK' : 'WASD';
|
||||
}
|
||||
}
|
||||
|
||||
class NewInputOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.newInput = !FlxG.save.data.newInput;
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return FlxG.save.data.newInput ? "New input" : "Old Input";
|
||||
}
|
||||
}
|
||||
|
||||
class DownscrollOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.downscroll = !FlxG.save.data.downscroll;
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return FlxG.save.data.downscroll ? 'Downscroll' : 'Upscroll';
|
||||
}
|
||||
}
|
||||
|
||||
class AccuracyOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.accuracyDisplay = !FlxG.save.data.accuracyDisplay;
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return "Accuracy " + (!FlxG.save.data.accuracyDisplay ? "off" : "on");
|
||||
}
|
||||
}
|
||||
|
||||
class SongPositionOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.songPosition = !FlxG.save.data.songPosition;
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return "Song Position " + (!FlxG.save.data.songPosition ? "off" : "on");
|
||||
}
|
||||
}
|
||||
|
||||
class EtternaModeOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.etternaMode = !FlxG.save.data.etternaMode;
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return "Etterna Mode " + (!FlxG.save.data.etternaMode ? "off" : "on");
|
||||
}
|
||||
}
|
||||
|
||||
class FPSOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
FlxG.save.data.fps = !FlxG.save.data.fps;
|
||||
(cast (Lib.current.getChildAt(0), Main)).toggleFPS(FlxG.save.data.fps);
|
||||
display = updateDisplay();
|
||||
return true;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return "FPS Counter " + (!FlxG.save.data.fps ? "off" : "on");
|
||||
}
|
||||
}
|
||||
|
||||
class ReplayOption extends Option
|
||||
{
|
||||
public override function press():Bool
|
||||
{
|
||||
trace('switch');
|
||||
FlxG.switchState(new LoadReplayState());
|
||||
return false;
|
||||
}
|
||||
|
||||
private override function updateDisplay():String
|
||||
{
|
||||
return "Load replays";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user