This commit is contained in:
Yoshman29
2022-10-13 19:04:16 +02:00
parent b8bd3e2b35
commit 0c27586297
7 changed files with 156 additions and 124 deletions
+1 -1
View File
@@ -1 +1 @@
421
426
+15 -7
View File
@@ -1,11 +1,13 @@
package funkin.options;
import openfl.Lib;
import flixel.util.FlxSave;
import flixel.input.keyboard.FlxKey;
class Options
{
@:dox(hide) public static var __save:FlxSave;
@:dox(hide) private static var __eventAdded = false;
/**
* GAMEPLAY SETTINGS
@@ -24,9 +26,9 @@ class Options
public static var P1_DOWN:Array<FlxKey> = [S];
public static var P1_UP:Array<FlxKey> = [W];
public static var P1_RIGHT:Array<FlxKey> = [D];
public static var P1_ACCEPT:Array<FlxKey> = [Z, SPACE, ENTER];
public static var P1_BACK:Array<FlxKey> = [BACKSPACE, ESCAPE];
public static var P1_PAUSE:Array<FlxKey> = [ESCAPE, ENTER, P];
public static var P1_ACCEPT:Array<FlxKey> = [ENTER];
public static var P1_BACK:Array<FlxKey> = [BACKSPACE];
public static var P1_PAUSE:Array<FlxKey> = [ENTER];
public static var P1_RESET:Array<FlxKey> = [R];
/**
@@ -36,9 +38,9 @@ class Options
public static var P2_DOWN:Array<FlxKey> = [DOWN];
public static var P2_UP:Array<FlxKey> = [UP];
public static var P2_RIGHT:Array<FlxKey> = [RIGHT];
public static var P2_ACCEPT:Array<FlxKey> = [];
public static var P2_BACK:Array<FlxKey> = [];
public static var P2_PAUSE:Array<FlxKey> = [];
public static var P2_ACCEPT:Array<FlxKey> = [SPACE];
public static var P2_BACK:Array<FlxKey> = [ESCAPE];
public static var P2_PAUSE:Array<FlxKey> = [ESCAPE];
public static var P2_RESET:Array<FlxKey> = [];
/**
@@ -104,7 +106,6 @@ class Options
return a;
}
#end
public static function load() {
__save = new FlxSave();
__save.bind("options");
@@ -112,6 +113,13 @@ class Options
var obj = Reflect.field(__save.data, field);
Reflect.setProperty(Options, field, obj);
}
if (!__eventAdded) {
Lib.application.onExit.add(function(i:Int) {
save();
});
__eventAdded = true;
}
}
public static function save() {
-1
View File
@@ -60,7 +60,6 @@ class OptionsMenu extends MusicBeatState {
CoolUtil.playMenuSFX(1);
FlxFlicker.flicker(alphabets.members[curSelected], 1, 0.06, false, false, function(flick:FlxFlicker)
{
FlxTransitionableState.skipNextTransIn = true;
FlxTransitionableState.skipNextTransOut = true;
FlxG.switchState(Type.createInstance(options[curSelected].state, []));
});
@@ -25,7 +25,6 @@ class ChangeKeybindSubState extends MusicBeatSubstate {
}
public override function create() {
super.create();
}
public override function update(elapsed:Float) {
@@ -72,8 +72,8 @@ class KeybindSetting extends FlxTypedSpriteGroup<FlxSprite> {
public override function update(elapsed:Float) {
super.update(elapsed);
bind1.alpha = (p2Selected ? 0.6 : 1) / alpha;
bind2.alpha = (p2Selected ? 1 : 0.6) / alpha;
bind1.alpha = (p2Selected ? 0.55 : 1) / alpha;
bind2.alpha = (p2Selected ? 1 : 0.55) / alpha;
bind1.alpha *= alpha;
bind2.alpha *= alpha;
}
@@ -94,6 +94,7 @@ class KeybindSetting extends FlxTypedSpriteGroup<FlxSprite> {
Reflect.setField(Options, 'P2_$value', [option2 = 0]);
else
Reflect.setField(Options, 'P1_$value', [option1 = 0]);
cancelCallback();
}));
}
@@ -26,20 +26,49 @@ class KeybindsOptions extends MusicBeatSubstate {
settings: [
{
name: '{noteLeft}',
control: 'LEFT'
control: 'NOTE_LEFT'
},
{
name: '{noteDown}',
control: 'DOWN'
control: 'NOTE_DOWN'
},
{
name: '{noteUp}',
control: 'UP'
control: 'NOTE_UP'
},
{
name: '{noteRight}',
control: 'NOTE_RIGHT'
},
]
},
{
name: 'UI',
settings: [
{
name: 'Left',
control: 'LEFT'
},
{
name: 'Down',
control: 'DOWN'
},
{
name: 'Up',
control: 'UP'
},
{
name: 'Right',
control: 'RIGHT'
},
{
name: 'Accept',
control: 'ACCEPT'
},
{
name: 'Back',
control: 'BACK'
},
{
name: 'Reset',
control: 'RESET'
@@ -49,19 +78,6 @@ class KeybindsOptions extends MusicBeatSubstate {
control: 'PAUSE'
},
]
},
{
name: 'UI',
settings: [
{
name: 'Accept',
control: 'ACCEPT'
},
{
name: 'Back',
control: 'BACK'
}
]
}
];
@@ -188,7 +204,6 @@ class KeybindsOptions extends MusicBeatSubstate {
changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0));
if (controls.BACK) {
FlxTransitionableState.skipNextTransIn = true;
FlxTransitionableState.skipNextTransOut = true;
if (isSubState)
close();
else
@@ -228,7 +243,7 @@ class KeybindsOptions extends MusicBeatSubstate {
CoolUtil.playMenuSFX(0, 0.4);
curSelected = FlxMath.wrap(curSelected + change, 0, alphabets.length-1);
alphabets.forEach(function(e) {
e.alpha = 0.6;
e.alpha = 0.55;
});
if (alphabets.members[curSelected] != null) {
var alphabet = alphabets.members[curSelected];
+104 -94
View File
@@ -12,9 +12,7 @@ import flixel.input.gamepad.FlxGamepadButton;
import flixel.input.gamepad.FlxGamepadInputID;
import flixel.input.keyboard.FlxKey;
#if (haxe >= "4.0.0")
enum abstract Action(String) to String from String
{
enum abstract Action(String) to String from String {
var UP = "up";
var LEFT = "left";
var RIGHT = "right";
@@ -27,35 +25,27 @@ enum abstract Action(String) to String from String
var LEFT_R = "left-release";
var RIGHT_R = "right-release";
var DOWN_R = "down-release";
var NOTE_UP = "note-up";
var NOTE_LEFT = "note-left";
var NOTE_RIGHT = "note-right";
var NOTE_DOWN = "note-down";
var NOTE_UP_P = "note-up-press";
var NOTE_LEFT_P = "note-left-press";
var NOTE_RIGHT_P = "note-right-press";
var NOTE_DOWN_P = "note-down-press";
var NOTE_UP_R = "note-up-release";
var NOTE_LEFT_R = "note-left-release";
var NOTE_RIGHT_R = "note-right-release";
var NOTE_DOWN_R = "note-down-release";
var ACCEPT = "accept";
var BACK = "back";
var PAUSE = "pause";
var RESET = "reset";
var CHEAT = "cheat";
}
#else
@:enum
abstract Action(String) to String from String
{
var UP = "up";
var LEFT = "left";
var RIGHT = "right";
var DOWN = "down";
var UP_P = "up-press";
var LEFT_P = "left-press";
var RIGHT_P = "right-press";
var DOWN_P = "down-press";
var UP_R = "up-release";
var LEFT_R = "left-release";
var RIGHT_R = "right-release";
var DOWN_R = "down-release";
var ACCEPT = "accept";
var BACK = "back";
var PAUSE = "pause";
var RESET = "reset";
var CHEAT = "cheat";
}
#end
enum Device
{
@@ -74,6 +64,10 @@ enum Control
LEFT;
RIGHT;
DOWN;
NOTE_UP;
NOTE_LEFT;
NOTE_RIGHT;
NOTE_DOWN;
RESET;
ACCEPT;
BACK;
@@ -107,6 +101,20 @@ class Controls extends FlxActionSet
var _leftR = new FlxActionDigital(Action.LEFT_R);
var _rightR = new FlxActionDigital(Action.RIGHT_R);
var _downR = new FlxActionDigital(Action.DOWN_R);
var _noteUp = new FlxActionDigital(Action.NOTE_UP);
var _noteLeft = new FlxActionDigital(Action.NOTE_LEFT);
var _noteRight = new FlxActionDigital(Action.NOTE_RIGHT);
var _noteDown = new FlxActionDigital(Action.NOTE_DOWN);
var _noteUpP = new FlxActionDigital(Action.NOTE_UP_P);
var _noteLeftP = new FlxActionDigital(Action.NOTE_LEFT_P);
var _noteRightP = new FlxActionDigital(Action.NOTE_RIGHT_P);
var _noteDownP = new FlxActionDigital(Action.NOTE_DOWN_P);
var _noteUpR = new FlxActionDigital(Action.NOTE_UP_R);
var _noteLeftR = new FlxActionDigital(Action.NOTE_LEFT_R);
var _noteRightR = new FlxActionDigital(Action.NOTE_RIGHT_R);
var _noteDownR = new FlxActionDigital(Action.NOTE_DOWN_R);
var _accept = new FlxActionDigital(Action.ACCEPT);
var _back = new FlxActionDigital(Action.BACK);
var _pause = new FlxActionDigital(Action.PAUSE);
@@ -122,65 +130,65 @@ class Controls extends FlxActionSet
public var gamepadsAdded:Array<Int> = [];
public var keyboardScheme = KeyboardScheme.None;
public var UP(get, never):Bool;
public var NOTE_UP(get, never):Bool;
inline function get_UP()
return _up.check();
inline function get_NOTE_UP()
return _noteUp.check();
public var LEFT(get, never):Bool;
public var NOTE_LEFT(get, never):Bool;
inline function get_LEFT()
return _left.check();
inline function get_NOTE_LEFT()
return _noteLeft.check();
public var RIGHT(get, never):Bool;
public var NOTE_RIGHT(get, never):Bool;
inline function get_RIGHT()
return _right.check();
inline function get_NOTE_RIGHT()
return _noteRight.check();
public var DOWN(get, never):Bool;
public var NOTE_DOWN(get, never):Bool;
inline function get_DOWN()
return _down.check();
inline function get_NOTE_DOWN()
return _noteDown.check();
public var UP_P(get, never):Bool;
public var NOTE_UP_P(get, never):Bool;
inline function get_UP_P()
return _upP.check();
inline function get_NOTE_UP_P()
return _noteUpP.check();
public var LEFT_P(get, never):Bool;
public var NOTE_LEFT_P(get, never):Bool;
inline function get_LEFT_P()
return _leftP.check();
inline function get_NOTE_LEFT_P()
return _noteLeftP.check();
public var RIGHT_P(get, never):Bool;
public var NOTE_RIGHT_P(get, never):Bool;
inline function get_RIGHT_P()
return _rightP.check();
inline function get_NOTE_RIGHT_P()
return _noteRightP.check();
public var DOWN_P(get, never):Bool;
public var NOTE_DOWN_P(get, never):Bool;
inline function get_DOWN_P()
return _downP.check();
inline function get_NOTE_DOWN_P()
return _noteDownP.check();
public var UP_R(get, never):Bool;
public var NOTE_UP_R(get, never):Bool;
inline function get_UP_R()
return _upR.check();
inline function get_NOTE_UP_R()
return _noteUpR.check();
public var LEFT_R(get, never):Bool;
public var NOTE_LEFT_R(get, never):Bool;
inline function get_LEFT_R()
return _leftR.check();
inline function get_NOTE_LEFT_R()
return _noteLeftR.check();
public var RIGHT_R(get, never):Bool;
public var NOTE_RIGHT_R(get, never):Bool;
inline function get_RIGHT_R()
return _rightR.check();
inline function get_NOTE_RIGHT_R()
return _noteRightR.check();
public var DOWN_R(get, never):Bool;
public var NOTE_DOWN_R(get, never):Bool;
inline function get_DOWN_R()
return _downR.check();
inline function get_NOTE_DOWN_R()
return _noteDownR.check();
public var ACCEPT(get, never):Bool;
@@ -207,7 +215,6 @@ class Controls extends FlxActionSet
inline function get_CHEAT()
return _cheat.check();
#if (haxe >= "4.0.0")
public function new(name, scheme = None)
{
super(name);
@@ -224,6 +231,20 @@ class Controls extends FlxActionSet
add(_leftR);
add(_rightR);
add(_downR);
add(_noteUp);
add(_noteLeft);
add(_noteRight);
add(_noteDown);
add(_noteUpP);
add(_noteLeftP);
add(_noteRightP);
add(_noteDownP);
add(_noteUpR);
add(_noteLeftR);
add(_noteRightR);
add(_noteDownR);
add(_accept);
add(_back);
add(_pause);
@@ -235,37 +256,6 @@ class Controls extends FlxActionSet
setKeyboardScheme(scheme, false);
}
#else
public function new(name, scheme:KeyboardScheme = null)
{
super(name);
add(_up);
add(_left);
add(_right);
add(_down);
add(_upP);
add(_leftP);
add(_rightP);
add(_downP);
add(_upR);
add(_leftR);
add(_rightR);
add(_downR);
add(_accept);
add(_back);
add(_pause);
add(_reset);
add(_cheat);
for (action in digitalActions)
byName[action.name] = action;
if (scheme == null)
scheme = None;
setKeyboardScheme(scheme, false);
}
#end
override function update()
{
@@ -306,6 +296,10 @@ class Controls extends FlxActionSet
case DOWN: _down;
case LEFT: _left;
case RIGHT: _right;
case NOTE_UP: _noteUp;
case NOTE_DOWN: _noteDown;
case NOTE_LEFT: _noteLeft;
case NOTE_RIGHT: _noteRight;
case ACCEPT: _accept;
case BACK: _back;
case PAUSE: _pause;
@@ -330,6 +324,22 @@ class Controls extends FlxActionSet
{
switch (control)
{
case NOTE_UP:
func(_noteUp, PRESSED);
func(_noteUpP, JUST_PRESSED);
func(_noteUpR, JUST_RELEASED);
case NOTE_LEFT:
func(_noteLeft, PRESSED);
func(_noteLeftP, JUST_PRESSED);
func(_noteLeftR, JUST_RELEASED);
case NOTE_RIGHT:
func(_noteRight, PRESSED);
func(_noteRightP, JUST_PRESSED);
func(_noteRightR, JUST_RELEASED);
case NOTE_DOWN:
func(_noteDown, PRESSED);
func(_noteDownP, JUST_PRESSED);
func(_noteDownR, JUST_RELEASED);
case UP:
func(_up, PRESSED);
func(_upP, JUST_PRESSED);