mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-03-29 13:29:43 +00:00
preference toggling
This commit is contained in:
parent
27c410cb9d
commit
b470cfc83a
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
export/
|
export/
|
||||||
.vscode/
|
.vscode/
|
||||||
APIStuff.hx
|
APIStuff.hx
|
||||||
|
.DS_STORE
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
{
|
{
|
||||||
"lineEnds": {
|
"lineEnds": {
|
||||||
"leftCurly": "both",
|
"leftCurly": "both",
|
||||||
"rightCurly": "both",
|
"rightCurly": "both",
|
||||||
"emptyCurly": "break",
|
"objectLiteralCurly": {
|
||||||
"objectLiteralCurly": {
|
"leftCurly": "after"
|
||||||
"leftCurly": "after"
|
}
|
||||||
}
|
},
|
||||||
},
|
"sameLine": {
|
||||||
"sameLine": {
|
"ifElse": "next",
|
||||||
"ifElse": "next",
|
"doWhile": "next",
|
||||||
"doWhile": "next",
|
"tryBody": "next",
|
||||||
"tryBody": "next",
|
"tryCatch": "next"
|
||||||
"tryCatch": "next"
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
package;
|
|
||||||
|
|
||||||
import Controls.Control;
|
|
||||||
import flash.text.TextField;
|
|
||||||
import flixel.FlxG;
|
|
||||||
import flixel.FlxSprite;
|
|
||||||
import flixel.addons.display.FlxGridOverlay;
|
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
|
||||||
import flixel.input.keyboard.FlxKey;
|
|
||||||
import flixel.math.FlxMath;
|
|
||||||
import flixel.text.FlxText;
|
|
||||||
import flixel.util.FlxColor;
|
|
||||||
import lime.utils.Assets;
|
|
||||||
|
|
||||||
class OptionsMenu_old extends MusicBeatState
|
|
||||||
{
|
|
||||||
var selector:FlxText;
|
|
||||||
var curSelected:Int = 0;
|
|
||||||
|
|
||||||
var controlsStrings:Array<String> = [];
|
|
||||||
|
|
||||||
private var grpControls:FlxTypedGroup<Alphabet>;
|
|
||||||
|
|
||||||
override function create()
|
|
||||||
{
|
|
||||||
var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image('menuDesat'));
|
|
||||||
controlsStrings = CoolUtil.coolTextFile(Paths.txt('controls'));
|
|
||||||
menuBG.color = 0xFFea71fd;
|
|
||||||
menuBG.setGraphicSize(Std.int(menuBG.width * 1.1));
|
|
||||||
menuBG.updateHitbox();
|
|
||||||
menuBG.screenCenter();
|
|
||||||
menuBG.antialiasing = true;
|
|
||||||
add(menuBG);
|
|
||||||
|
|
||||||
/*
|
|
||||||
grpControls = new FlxTypedGroup<Alphabet>();
|
|
||||||
add(grpControls);
|
|
||||||
|
|
||||||
for (i in 0...controlsStrings.length)
|
|
||||||
{
|
|
||||||
if (controlsStrings[i].indexOf('set') != -1)
|
|
||||||
{
|
|
||||||
var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, controlsStrings[i].substring(3) + ': ' + controlsStrings[i + 1], true, false);
|
|
||||||
controlLabel.isMenuItem = true;
|
|
||||||
controlLabel.targetY = i;
|
|
||||||
grpControls.add(controlLabel);
|
|
||||||
}
|
|
||||||
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
super.create();
|
|
||||||
|
|
||||||
openSubState(new OptionsSubState());
|
|
||||||
}
|
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
|
||||||
{
|
|
||||||
super.update(elapsed);
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (controls.ACCEPT)
|
|
||||||
{
|
|
||||||
changeBinding();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isSettingControl)
|
|
||||||
waitingInput();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (controls.BACK)
|
|
||||||
FlxG.switchState(new MainMenuState());
|
|
||||||
if (controls.UP_P)
|
|
||||||
changeSelection(-1);
|
|
||||||
if (controls.DOWN_P)
|
|
||||||
changeSelection(1);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
function waitingInput():Void
|
|
||||||
{
|
|
||||||
if (FlxG.keys.getIsDown().length > 0)
|
|
||||||
{
|
|
||||||
// PlayerSettings.player1.controls.replaceBinding(Control.LEFT, Keys, FlxG.keys.getIsDown()[0].ID, null);
|
|
||||||
}
|
|
||||||
// PlayerSettings.player1.controls.replaceBinding(Control)
|
|
||||||
}
|
|
||||||
|
|
||||||
var isSettingControl:Bool = false;
|
|
||||||
|
|
||||||
function changeBinding():Void
|
|
||||||
{
|
|
||||||
if (!isSettingControl)
|
|
||||||
{
|
|
||||||
isSettingControl = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function changeSelection(change:Int = 0)
|
|
||||||
{
|
|
||||||
NGio.logEvent('Fresh');
|
|
||||||
|
|
||||||
FlxG.sound.play(Paths.sound('scrollMenu'), 0.4);
|
|
||||||
|
|
||||||
curSelected += change;
|
|
||||||
|
|
||||||
if (curSelected < 0)
|
|
||||||
curSelected = grpControls.length - 1;
|
|
||||||
if (curSelected >= grpControls.length)
|
|
||||||
curSelected = 0;
|
|
||||||
|
|
||||||
// selector.y = (70 * curSelected) + 30;
|
|
||||||
|
|
||||||
var bullShit:Int = 0;
|
|
||||||
|
|
||||||
for (item in grpControls.members)
|
|
||||||
{
|
|
||||||
item.targetY = bullShit - curSelected;
|
|
||||||
bullShit++;
|
|
||||||
|
|
||||||
item.alpha = 0.6;
|
|
||||||
// item.setGraphicSize(Std.int(item.width * 0.8));
|
|
||||||
|
|
||||||
if (item.targetY == 0)
|
|
||||||
{
|
|
||||||
item.alpha = 1;
|
|
||||||
// item.setGraphicSize(Std.int(item.width));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
package;
|
|
||||||
|
|
||||||
import Controls.Control;
|
|
||||||
import flixel.FlxG;
|
|
||||||
import flixel.FlxSprite;
|
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
|
||||||
import flixel.text.FlxText;
|
|
||||||
import flixel.util.FlxColor;
|
|
||||||
import polymod.Polymod;
|
|
||||||
#if desktop
|
|
||||||
import sys.FileSystem;
|
|
||||||
#end
|
|
||||||
|
|
||||||
class OptionsSubState extends MusicBeatSubstate
|
|
||||||
{
|
|
||||||
var textMenuItems:Array<String> = ['Master Volume', 'Sound Volume', 'Controls', 'Colors', 'Back'];
|
|
||||||
|
|
||||||
var selector:FlxSprite;
|
|
||||||
var curSelected:Int = 0;
|
|
||||||
|
|
||||||
var grpOptionsTexts:FlxTypedGroup<FlxText>;
|
|
||||||
|
|
||||||
// public static var isDownscroll:Bool = false;
|
|
||||||
|
|
||||||
public function new()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
|
|
||||||
#if desktop
|
|
||||||
textMenuItems.push('Mods');
|
|
||||||
#end
|
|
||||||
|
|
||||||
grpOptionsTexts = new FlxTypedGroup<FlxText>();
|
|
||||||
add(grpOptionsTexts);
|
|
||||||
|
|
||||||
selector = new FlxSprite().makeGraphic(5, 5, FlxColor.RED);
|
|
||||||
add(selector);
|
|
||||||
|
|
||||||
for (i in 0...textMenuItems.length)
|
|
||||||
{
|
|
||||||
var optionText:FlxText = new FlxText(20, 20 + (i * 50), 0, textMenuItems[i], 32);
|
|
||||||
optionText.ID = i;
|
|
||||||
grpOptionsTexts.add(optionText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override function update(elapsed:Float)
|
|
||||||
{
|
|
||||||
super.update(elapsed);
|
|
||||||
|
|
||||||
if (controls.UI_UP_P)
|
|
||||||
curSelected -= 1;
|
|
||||||
|
|
||||||
if (controls.UI_DOWN_P)
|
|
||||||
curSelected += 1;
|
|
||||||
|
|
||||||
if (curSelected < 0)
|
|
||||||
curSelected = textMenuItems.length - 1;
|
|
||||||
|
|
||||||
if (curSelected >= textMenuItems.length)
|
|
||||||
curSelected = 0;
|
|
||||||
|
|
||||||
grpOptionsTexts.forEach(function(txt:FlxText)
|
|
||||||
{
|
|
||||||
txt.color = FlxColor.WHITE;
|
|
||||||
|
|
||||||
if (txt.ID == curSelected)
|
|
||||||
txt.color = FlxColor.YELLOW;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (controls.BACK)
|
|
||||||
FlxG.switchState(new MainMenuState());
|
|
||||||
|
|
||||||
if (controls.ACCEPT)
|
|
||||||
{
|
|
||||||
switch (textMenuItems[curSelected])
|
|
||||||
{
|
|
||||||
case "Colors":
|
|
||||||
FlxG.state.closeSubState();
|
|
||||||
|
|
||||||
case "Controls":
|
|
||||||
FlxG.state.closeSubState();
|
|
||||||
FlxG.state.openSubState(new ControlsSubState());
|
|
||||||
case "Mods":
|
|
||||||
FlxG.state.closeSubState();
|
|
||||||
// FlxG.state.openSubState(new ModdingSubstate());
|
|
||||||
case "Back":
|
|
||||||
FlxG.switchState(new MainMenuState());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1163,9 +1163,7 @@ class PlayState extends MusicBeatState
|
||||||
{
|
{
|
||||||
swagNote.x += FlxG.width / 2; // general offset
|
swagNote.x += FlxG.width / 2; // general offset
|
||||||
}
|
}
|
||||||
else
|
else {}
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
daBeats += 1;
|
daBeats += 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ class TitleState extends MusicBeatState
|
||||||
PlayerSettings.init();
|
PlayerSettings.init();
|
||||||
Highscore.load();
|
Highscore.load();
|
||||||
|
|
||||||
#if newgrounds
|
#if ng
|
||||||
NGio.init();
|
NGio.init();
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ class TitleState extends MusicBeatState
|
||||||
transitioning = true;
|
transitioning = true;
|
||||||
// FlxG.sound.music.stop();
|
// FlxG.sound.music.stop();
|
||||||
|
|
||||||
#if newgrounds
|
#if ng
|
||||||
if (!OutdatedSubState.leftState)
|
if (!OutdatedSubState.leftState)
|
||||||
{
|
{
|
||||||
NGio.checkVersion(function(version)
|
NGio.checkVersion(function(version)
|
||||||
|
|
|
@ -12,7 +12,7 @@ import flixel.util.FlxSignal;
|
||||||
class OptionsState extends MusicBeatState
|
class OptionsState extends MusicBeatState
|
||||||
{
|
{
|
||||||
var pages = new Map<PageName, Page>();
|
var pages = new Map<PageName, Page>();
|
||||||
var currentName:PageName = #if newgrounds Options #else Controls #end;
|
var currentName:PageName = Options;
|
||||||
var currentPage(get, never):Page;
|
var currentPage(get, never):Page;
|
||||||
|
|
||||||
inline function get_currentPage()
|
inline function get_currentPage()
|
||||||
|
@ -29,6 +29,7 @@ class OptionsState extends MusicBeatState
|
||||||
add(menuBG);
|
add(menuBG);
|
||||||
|
|
||||||
var options = addPage(Options, new OptionsMenu(false));
|
var options = addPage(Options, new OptionsMenu(false));
|
||||||
|
var preferences = addPage(Preferences, new PreferencesMenu());
|
||||||
var controls = addPage(Controls, new ControlsMenu());
|
var controls = addPage(Controls, new ControlsMenu());
|
||||||
var colors = addPage(Colors, new ColorsMenu());
|
var colors = addPage(Colors, new ColorsMenu());
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ class OptionsState extends MusicBeatState
|
||||||
options.onExit.add(exitToMainMenu);
|
options.onExit.add(exitToMainMenu);
|
||||||
controls.onExit.add(switchPage.bind(Options));
|
controls.onExit.add(switchPage.bind(Options));
|
||||||
colors.onExit.add(switchPage.bind(Options));
|
colors.onExit.add(switchPage.bind(Options));
|
||||||
|
preferences.onExit.add(switchPage.bind(Options));
|
||||||
|
|
||||||
#if cpp
|
#if cpp
|
||||||
mods.onExit.add(switchPage.bind(Options));
|
mods.onExit.add(switchPage.bind(Options));
|
||||||
|
@ -172,6 +174,7 @@ class OptionsMenu extends Page
|
||||||
super();
|
super();
|
||||||
|
|
||||||
add(items = new TextMenuList());
|
add(items = new TextMenuList());
|
||||||
|
createItem('preferences', function() switchPage(Preferences));
|
||||||
createItem("controls", function() switchPage(Controls));
|
createItem("controls", function() switchPage(Controls));
|
||||||
createItem('colors', function() switchPage(Colors));
|
createItem('colors', function() switchPage(Colors));
|
||||||
#if cpp
|
#if cpp
|
||||||
|
@ -276,4 +279,5 @@ enum PageName
|
||||||
Controls;
|
Controls;
|
||||||
Colors;
|
Colors;
|
||||||
Mods;
|
Mods;
|
||||||
|
Preferences;
|
||||||
}
|
}
|
||||||
|
|
68
source/ui/PreferencesMenu.hx
Normal file
68
source/ui/PreferencesMenu.hx
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
package ui;
|
||||||
|
|
||||||
|
import flixel.FlxG;
|
||||||
|
import ui.AtlasText.AtlasFont;
|
||||||
|
|
||||||
|
class PreferencesMenu extends ui.OptionsState.Page
|
||||||
|
{
|
||||||
|
public static var preferences:Map<String, Dynamic> = new Map();
|
||||||
|
|
||||||
|
var items:TextMenuList;
|
||||||
|
|
||||||
|
public function new()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
add(items = new TextMenuList());
|
||||||
|
|
||||||
|
createPrefItem('naughtyness', 'censor-naughty', false);
|
||||||
|
createPrefItem('downscroll', 'downscroll', false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createPrefItem(prefName:String, prefString:String, prefValue:Dynamic):Void
|
||||||
|
{
|
||||||
|
items.createItem(100, 100 * items.length, prefName, AtlasFont.Bold, function()
|
||||||
|
{
|
||||||
|
preferenceCheck(prefString, prefValue);
|
||||||
|
|
||||||
|
switch (Type.typeof(prefValue).getName())
|
||||||
|
{
|
||||||
|
case 'TBool':
|
||||||
|
prefToggle(prefString);
|
||||||
|
|
||||||
|
default:
|
||||||
|
trace('swag');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
trace(Type.typeof(prefValue).getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assumes that the preference has already been checked/set?
|
||||||
|
*/
|
||||||
|
private function prefToggle(prefName:String)
|
||||||
|
{
|
||||||
|
var daSwap:Bool = preferences.get(prefName);
|
||||||
|
daSwap = !daSwap;
|
||||||
|
preferences.set(prefName, daSwap);
|
||||||
|
trace('toggled? ' + preferences.get(prefName));
|
||||||
|
}
|
||||||
|
|
||||||
|
override function update(elapsed:Float)
|
||||||
|
{
|
||||||
|
super.update(elapsed);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function preferenceCheck(prefString:String, prefValue:Dynamic):Void
|
||||||
|
{
|
||||||
|
if (preferences.get(prefString) == null)
|
||||||
|
{
|
||||||
|
preferences.set(prefString, prefValue);
|
||||||
|
trace('set preference!');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace('found preference: ' + preferences.get(prefString));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
package ui;
|
|
||||||
|
|
||||||
class SettingsMenu extends ui.OptionsState.Page
|
|
||||||
{
|
|
||||||
public function new()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue