Implement FPS counter toggle; Refactor options

This commit is contained in:
Saalvage
2021-03-29 01:14:51 +02:00
parent 83750098f0
commit b06e23529e
4 changed files with 207 additions and 84 deletions

View File

@ -1,6 +1,6 @@
package;
import Controls.KeyboardScheme;
import Options;
import Controls.Control;
import flash.text.TextField;
import flixel.FlxG;
@ -18,23 +18,24 @@ class OptionsMenu extends MusicBeatState
var selector:FlxText;
var curSelected:Int = 0;
var controlsStrings:Array<String> = [];
var options:Array<Option> = [
new DFJKOption(controls),
new NewInputOption(),
new DownscrollOption(),
new AccuracyOption(),
new SongPositionOption(),
#if !mobile
new FPSOption(),
#end
new EtternaModeOption(),
new ReplayOption()
];
private var grpControls:FlxTypedGroup<Alphabet>;
var versionShit:FlxText;
override function create()
{
var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image('menuDesat'));
controlsStrings = CoolUtil.coolStringFile(
(FlxG.save.data.dfjk ? 'DFJK' : 'WASD') +
"\n" + (FlxG.save.data.newInput ? "New input" : "Old Input") +
"\n" + (FlxG.save.data.downscroll ? 'Downscroll' : 'Upscroll') +
"\nAccuracy " + (!FlxG.save.data.accuracyDisplay ? "off" : "on") +
"\nSong Position " + (!FlxG.save.data.songPosition ? "off" : "on") +
"\nEtterna Mode " + (!FlxG.save.data.etternaMode ? "off" : "on") +
"\nLoad replays");
trace(controlsStrings);
menuBG.color = 0xFFea71fd;
menuBG.setGraphicSize(Std.int(menuBG.width * 1.1));
@ -46,12 +47,12 @@ class OptionsMenu extends MusicBeatState
grpControls = new FlxTypedGroup<Alphabet>();
add(grpControls);
for (i in 0...controlsStrings.length)
for (i in 0...options.length)
{
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, controlsStrings[i], true, false);
controlLabel.isMenuItem = true;
controlLabel.targetY = i;
grpControls.add(controlLabel);
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, options[i].getDisplay(), true, false);
controlLabel.isMenuItem = true;
controlLabel.targetY = i;
grpControls.add(controlLabel);
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
}
@ -90,54 +91,11 @@ class OptionsMenu extends MusicBeatState
if (controls.ACCEPT)
{
if (curSelected != 6)
if (options[curSelected].press()) {
grpControls.remove(grpControls.members[curSelected]);
switch(curSelected)
{
case 0:
FlxG.save.data.dfjk = !FlxG.save.data.dfjk;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, (FlxG.save.data.dfjk ? 'DFJK' : 'WASD'), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected;
grpControls.add(ctrl);
if (FlxG.save.data.dfjk)
controls.setKeyboardScheme(KeyboardScheme.Solo, true);
else
controls.setKeyboardScheme(KeyboardScheme.Duo(true), true);
case 1:
FlxG.save.data.newInput = !FlxG.save.data.newInput;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, (FlxG.save.data.newInput ? "New input" : "Old Input"), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected - 1;
grpControls.add(ctrl);
case 2:
FlxG.save.data.downscroll = !FlxG.save.data.downscroll;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, (FlxG.save.data.downscroll ? 'Downscroll' : 'Upscroll'), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected - 2;
grpControls.add(ctrl);
case 3:
FlxG.save.data.accuracyDisplay = !FlxG.save.data.accuracyDisplay;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, "Accuracy " + (!FlxG.save.data.accuracyDisplay ? "off" : "on"), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected - 3;
grpControls.add(ctrl);
case 4:
FlxG.save.data.songPosition = !FlxG.save.data.songPosition;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, "Song Position " + (!FlxG.save.data.songPosition ? "off" : "on"), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected - 4;
grpControls.add(ctrl);
case 5:
FlxG.save.data.etternaMode = !FlxG.save.data.etternaMode;
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, "Etterna Mode " + (!FlxG.save.data.etternaMode ? "off" : "on"), true, false);
ctrl.isMenuItem = true;
ctrl.targetY = curSelected - 5;
grpControls.add(ctrl);
case 6:
trace('switch');
FlxG.switchState(new LoadReplayState());
var ctrl:Alphabet = new Alphabet(0, (70 * curSelected) + 30, options[curSelected].getDisplay(), true, false);
ctrl.isMenuItem = true;
grpControls.add(ctrl);
}
}
FlxG.save.flush();