mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-12-01 08:37:17 +00:00
Merge pull request #616 from FunkinCrew/feature/freeplay-keybinds
[FUNK-391] Rebindable controls for the Freeplay menu
This commit is contained in:
commit
381e0104e9
|
|
@ -58,7 +58,11 @@ class Controls extends FlxActionSet
|
||||||
var _back = new FunkinAction(Action.BACK);
|
var _back = new FunkinAction(Action.BACK);
|
||||||
var _pause = new FunkinAction(Action.PAUSE);
|
var _pause = new FunkinAction(Action.PAUSE);
|
||||||
var _reset = new FunkinAction(Action.RESET);
|
var _reset = new FunkinAction(Action.RESET);
|
||||||
var _screenshot = new FunkinAction(Action.SCREENSHOT);
|
var _window_screenshot = new FunkinAction(Action.WINDOW_SCREENSHOT);
|
||||||
|
var _window_fullscreen = new FunkinAction(Action.WINDOW_FULLSCREEN);
|
||||||
|
var _freeplay_favorite = new FunkinAction(Action.FREEPLAY_FAVORITE);
|
||||||
|
var _freeplay_left = new FunkinAction(Action.FREEPLAY_LEFT);
|
||||||
|
var _freeplay_right = new FunkinAction(Action.FREEPLAY_RIGHT);
|
||||||
var _cutscene_advance = new FunkinAction(Action.CUTSCENE_ADVANCE);
|
var _cutscene_advance = new FunkinAction(Action.CUTSCENE_ADVANCE);
|
||||||
var _debug_menu = new FunkinAction(Action.DEBUG_MENU);
|
var _debug_menu = new FunkinAction(Action.DEBUG_MENU);
|
||||||
var _debug_chart = new FunkinAction(Action.DEBUG_CHART);
|
var _debug_chart = new FunkinAction(Action.DEBUG_CHART);
|
||||||
|
|
@ -66,7 +70,6 @@ class Controls extends FlxActionSet
|
||||||
var _volume_up = new FunkinAction(Action.VOLUME_UP);
|
var _volume_up = new FunkinAction(Action.VOLUME_UP);
|
||||||
var _volume_down = new FunkinAction(Action.VOLUME_DOWN);
|
var _volume_down = new FunkinAction(Action.VOLUME_DOWN);
|
||||||
var _volume_mute = new FunkinAction(Action.VOLUME_MUTE);
|
var _volume_mute = new FunkinAction(Action.VOLUME_MUTE);
|
||||||
var _fullscreen = new FunkinAction(Action.FULLSCREEN);
|
|
||||||
|
|
||||||
var byName:Map<String, FunkinAction> = new Map<String, FunkinAction>();
|
var byName:Map<String, FunkinAction> = new Map<String, FunkinAction>();
|
||||||
|
|
||||||
|
|
@ -233,10 +236,30 @@ class Controls extends FlxActionSet
|
||||||
inline function get_RESET()
|
inline function get_RESET()
|
||||||
return _reset.check();
|
return _reset.check();
|
||||||
|
|
||||||
public var SCREENSHOT(get, never):Bool;
|
public var WINDOW_FULLSCREEN(get, never):Bool;
|
||||||
|
|
||||||
inline function get_SCREENSHOT()
|
inline function get_WINDOW_FULLSCREEN()
|
||||||
return _screenshot.check();
|
return _window_fullscreen.check();
|
||||||
|
|
||||||
|
public var WINDOW_SCREENSHOT(get, never):Bool;
|
||||||
|
|
||||||
|
inline function get_WINDOW_SCREENSHOT()
|
||||||
|
return _window_screenshot.check();
|
||||||
|
|
||||||
|
public var FREEPLAY_FAVORITE(get, never):Bool;
|
||||||
|
|
||||||
|
inline function get_FREEPLAY_FAVORITE()
|
||||||
|
return _freeplay_favorite.check();
|
||||||
|
|
||||||
|
public var FREEPLAY_LEFT(get, never):Bool;
|
||||||
|
|
||||||
|
inline function get_FREEPLAY_LEFT()
|
||||||
|
return _freeplay_left.check();
|
||||||
|
|
||||||
|
public var FREEPLAY_RIGHT(get, never):Bool;
|
||||||
|
|
||||||
|
inline function get_FREEPLAY_RIGHT()
|
||||||
|
return _freeplay_right.check();
|
||||||
|
|
||||||
public var CUTSCENE_ADVANCE(get, never):Bool;
|
public var CUTSCENE_ADVANCE(get, never):Bool;
|
||||||
|
|
||||||
|
|
@ -273,11 +296,6 @@ class Controls extends FlxActionSet
|
||||||
inline function get_VOLUME_MUTE()
|
inline function get_VOLUME_MUTE()
|
||||||
return _volume_mute.check();
|
return _volume_mute.check();
|
||||||
|
|
||||||
public var FULLSCREEN(get, never):Bool;
|
|
||||||
|
|
||||||
inline function get_FULLSCREEN()
|
|
||||||
return _fullscreen.check();
|
|
||||||
|
|
||||||
public function new(name, scheme:KeyboardScheme = null)
|
public function new(name, scheme:KeyboardScheme = null)
|
||||||
{
|
{
|
||||||
super(name);
|
super(name);
|
||||||
|
|
@ -294,7 +312,11 @@ class Controls extends FlxActionSet
|
||||||
add(_back);
|
add(_back);
|
||||||
add(_pause);
|
add(_pause);
|
||||||
add(_reset);
|
add(_reset);
|
||||||
add(_screenshot);
|
add(_window_screenshot);
|
||||||
|
add(_window_fullscreen);
|
||||||
|
add(_freeplay_favorite);
|
||||||
|
add(_freeplay_left);
|
||||||
|
add(_freeplay_right);
|
||||||
add(_cutscene_advance);
|
add(_cutscene_advance);
|
||||||
add(_debug_menu);
|
add(_debug_menu);
|
||||||
add(_debug_chart);
|
add(_debug_chart);
|
||||||
|
|
@ -302,7 +324,6 @@ class Controls extends FlxActionSet
|
||||||
add(_volume_up);
|
add(_volume_up);
|
||||||
add(_volume_down);
|
add(_volume_down);
|
||||||
add(_volume_mute);
|
add(_volume_mute);
|
||||||
add(_fullscreen);
|
|
||||||
|
|
||||||
for (action in digitalActions) {
|
for (action in digitalActions) {
|
||||||
if (Std.isOfType(action, FunkinAction)) {
|
if (Std.isOfType(action, FunkinAction)) {
|
||||||
|
|
@ -398,7 +419,11 @@ class Controls extends FlxActionSet
|
||||||
case BACK: _back;
|
case BACK: _back;
|
||||||
case PAUSE: _pause;
|
case PAUSE: _pause;
|
||||||
case RESET: _reset;
|
case RESET: _reset;
|
||||||
case SCREENSHOT: _screenshot;
|
case WINDOW_SCREENSHOT: _window_screenshot;
|
||||||
|
case WINDOW_FULLSCREEN: _window_fullscreen;
|
||||||
|
case FREEPLAY_FAVORITE: _freeplay_favorite;
|
||||||
|
case FREEPLAY_LEFT: _freeplay_left;
|
||||||
|
case FREEPLAY_RIGHT: _freeplay_right;
|
||||||
case CUTSCENE_ADVANCE: _cutscene_advance;
|
case CUTSCENE_ADVANCE: _cutscene_advance;
|
||||||
case DEBUG_MENU: _debug_menu;
|
case DEBUG_MENU: _debug_menu;
|
||||||
case DEBUG_CHART: _debug_chart;
|
case DEBUG_CHART: _debug_chart;
|
||||||
|
|
@ -406,7 +431,6 @@ class Controls extends FlxActionSet
|
||||||
case VOLUME_UP: _volume_up;
|
case VOLUME_UP: _volume_up;
|
||||||
case VOLUME_DOWN: _volume_down;
|
case VOLUME_DOWN: _volume_down;
|
||||||
case VOLUME_MUTE: _volume_mute;
|
case VOLUME_MUTE: _volume_mute;
|
||||||
case FULLSCREEN: _fullscreen;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -466,8 +490,16 @@ class Controls extends FlxActionSet
|
||||||
func(_pause, JUST_PRESSED);
|
func(_pause, JUST_PRESSED);
|
||||||
case RESET:
|
case RESET:
|
||||||
func(_reset, JUST_PRESSED);
|
func(_reset, JUST_PRESSED);
|
||||||
case SCREENSHOT:
|
case WINDOW_SCREENSHOT:
|
||||||
func(_screenshot, JUST_PRESSED);
|
func(_window_screenshot, JUST_PRESSED);
|
||||||
|
case WINDOW_FULLSCREEN:
|
||||||
|
func(_window_fullscreen, JUST_PRESSED);
|
||||||
|
case FREEPLAY_FAVORITE:
|
||||||
|
func(_freeplay_favorite, JUST_PRESSED);
|
||||||
|
case FREEPLAY_LEFT:
|
||||||
|
func(_freeplay_left, JUST_PRESSED);
|
||||||
|
case FREEPLAY_RIGHT:
|
||||||
|
func(_freeplay_right, JUST_PRESSED);
|
||||||
case CUTSCENE_ADVANCE:
|
case CUTSCENE_ADVANCE:
|
||||||
func(_cutscene_advance, JUST_PRESSED);
|
func(_cutscene_advance, JUST_PRESSED);
|
||||||
case DEBUG_MENU:
|
case DEBUG_MENU:
|
||||||
|
|
@ -482,8 +514,6 @@ class Controls extends FlxActionSet
|
||||||
func(_volume_down, JUST_PRESSED);
|
func(_volume_down, JUST_PRESSED);
|
||||||
case VOLUME_MUTE:
|
case VOLUME_MUTE:
|
||||||
func(_volume_mute, JUST_PRESSED);
|
func(_volume_mute, JUST_PRESSED);
|
||||||
case FULLSCREEN:
|
|
||||||
func(_fullscreen, JUST_PRESSED);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -678,7 +708,11 @@ class Controls extends FlxActionSet
|
||||||
bindKeys(Control.BACK, getDefaultKeybinds(scheme, Control.BACK));
|
bindKeys(Control.BACK, getDefaultKeybinds(scheme, Control.BACK));
|
||||||
bindKeys(Control.PAUSE, getDefaultKeybinds(scheme, Control.PAUSE));
|
bindKeys(Control.PAUSE, getDefaultKeybinds(scheme, Control.PAUSE));
|
||||||
bindKeys(Control.RESET, getDefaultKeybinds(scheme, Control.RESET));
|
bindKeys(Control.RESET, getDefaultKeybinds(scheme, Control.RESET));
|
||||||
bindKeys(Control.SCREENSHOT, getDefaultKeybinds(scheme, Control.SCREENSHOT));
|
bindKeys(Control.WINDOW_SCREENSHOT, getDefaultKeybinds(scheme, Control.WINDOW_SCREENSHOT));
|
||||||
|
bindKeys(Control.WINDOW_FULLSCREEN, getDefaultKeybinds(scheme, Control.WINDOW_FULLSCREEN));
|
||||||
|
bindKeys(Control.FREEPLAY_FAVORITE, getDefaultKeybinds(scheme, Control.FREEPLAY_FAVORITE));
|
||||||
|
bindKeys(Control.FREEPLAY_LEFT, getDefaultKeybinds(scheme, Control.FREEPLAY_LEFT));
|
||||||
|
bindKeys(Control.FREEPLAY_RIGHT, getDefaultKeybinds(scheme, Control.FREEPLAY_RIGHT));
|
||||||
bindKeys(Control.CUTSCENE_ADVANCE, getDefaultKeybinds(scheme, Control.CUTSCENE_ADVANCE));
|
bindKeys(Control.CUTSCENE_ADVANCE, getDefaultKeybinds(scheme, Control.CUTSCENE_ADVANCE));
|
||||||
bindKeys(Control.DEBUG_MENU, getDefaultKeybinds(scheme, Control.DEBUG_MENU));
|
bindKeys(Control.DEBUG_MENU, getDefaultKeybinds(scheme, Control.DEBUG_MENU));
|
||||||
bindKeys(Control.DEBUG_CHART, getDefaultKeybinds(scheme, Control.DEBUG_CHART));
|
bindKeys(Control.DEBUG_CHART, getDefaultKeybinds(scheme, Control.DEBUG_CHART));
|
||||||
|
|
@ -686,7 +720,6 @@ class Controls extends FlxActionSet
|
||||||
bindKeys(Control.VOLUME_UP, getDefaultKeybinds(scheme, Control.VOLUME_UP));
|
bindKeys(Control.VOLUME_UP, getDefaultKeybinds(scheme, Control.VOLUME_UP));
|
||||||
bindKeys(Control.VOLUME_DOWN, getDefaultKeybinds(scheme, Control.VOLUME_DOWN));
|
bindKeys(Control.VOLUME_DOWN, getDefaultKeybinds(scheme, Control.VOLUME_DOWN));
|
||||||
bindKeys(Control.VOLUME_MUTE, getDefaultKeybinds(scheme, Control.VOLUME_MUTE));
|
bindKeys(Control.VOLUME_MUTE, getDefaultKeybinds(scheme, Control.VOLUME_MUTE));
|
||||||
bindKeys(Control.FULLSCREEN, getDefaultKeybinds(scheme, Control.FULLSCREEN));
|
|
||||||
|
|
||||||
bindMobileLol();
|
bindMobileLol();
|
||||||
}
|
}
|
||||||
|
|
@ -707,7 +740,11 @@ class Controls extends FlxActionSet
|
||||||
case Control.BACK: return [X, BACKSPACE, ESCAPE];
|
case Control.BACK: return [X, BACKSPACE, ESCAPE];
|
||||||
case Control.PAUSE: return [P, ENTER, ESCAPE];
|
case Control.PAUSE: return [P, ENTER, ESCAPE];
|
||||||
case Control.RESET: return [R];
|
case Control.RESET: return [R];
|
||||||
case Control.SCREENSHOT: return [F3]; // TODO: Change this back to PrintScreen
|
case Control.WINDOW_FULLSCREEN: return [F11]; // We use F for other things LOL.
|
||||||
|
case Control.WINDOW_SCREENSHOT: return [F3];
|
||||||
|
case Control.FREEPLAY_FAVORITE: return [F]; // Favorite a song on the menu
|
||||||
|
case Control.FREEPLAY_LEFT: return [Q]; // Switch tabs on the menu
|
||||||
|
case Control.FREEPLAY_RIGHT: return [E]; // Switch tabs on the menu
|
||||||
case Control.CUTSCENE_ADVANCE: return [Z, ENTER];
|
case Control.CUTSCENE_ADVANCE: return [Z, ENTER];
|
||||||
case Control.DEBUG_MENU: return [GRAVEACCENT];
|
case Control.DEBUG_MENU: return [GRAVEACCENT];
|
||||||
case Control.DEBUG_CHART: return [];
|
case Control.DEBUG_CHART: return [];
|
||||||
|
|
@ -715,8 +752,6 @@ class Controls extends FlxActionSet
|
||||||
case Control.VOLUME_UP: return [PLUS, NUMPADPLUS];
|
case Control.VOLUME_UP: return [PLUS, NUMPADPLUS];
|
||||||
case Control.VOLUME_DOWN: return [MINUS, NUMPADMINUS];
|
case Control.VOLUME_DOWN: return [MINUS, NUMPADMINUS];
|
||||||
case Control.VOLUME_MUTE: return [ZERO, NUMPADZERO];
|
case Control.VOLUME_MUTE: return [ZERO, NUMPADZERO];
|
||||||
case Control.FULLSCREEN: return [FlxKey.F11]; // We use F for other things LOL.
|
|
||||||
|
|
||||||
}
|
}
|
||||||
case Duo(true):
|
case Duo(true):
|
||||||
switch (control) {
|
switch (control) {
|
||||||
|
|
@ -732,7 +767,11 @@ class Controls extends FlxActionSet
|
||||||
case Control.BACK: return [H, X];
|
case Control.BACK: return [H, X];
|
||||||
case Control.PAUSE: return [ONE];
|
case Control.PAUSE: return [ONE];
|
||||||
case Control.RESET: return [R];
|
case Control.RESET: return [R];
|
||||||
case Control.SCREENSHOT: return [PRINTSCREEN];
|
case Control.WINDOW_SCREENSHOT: return [F3];
|
||||||
|
case Control.WINDOW_FULLSCREEN: return [F11];
|
||||||
|
case Control.FREEPLAY_FAVORITE: return [F]; // Favorite a song on the menu
|
||||||
|
case Control.FREEPLAY_LEFT: return [Q]; // Switch tabs on the menu
|
||||||
|
case Control.FREEPLAY_RIGHT: return [E]; // Switch tabs on the menu
|
||||||
case Control.CUTSCENE_ADVANCE: return [G, Z];
|
case Control.CUTSCENE_ADVANCE: return [G, Z];
|
||||||
case Control.DEBUG_MENU: return [GRAVEACCENT];
|
case Control.DEBUG_MENU: return [GRAVEACCENT];
|
||||||
case Control.DEBUG_CHART: return [];
|
case Control.DEBUG_CHART: return [];
|
||||||
|
|
@ -740,7 +779,6 @@ class Controls extends FlxActionSet
|
||||||
case Control.VOLUME_UP: return [PLUS];
|
case Control.VOLUME_UP: return [PLUS];
|
||||||
case Control.VOLUME_DOWN: return [MINUS];
|
case Control.VOLUME_DOWN: return [MINUS];
|
||||||
case Control.VOLUME_MUTE: return [ZERO];
|
case Control.VOLUME_MUTE: return [ZERO];
|
||||||
case Control.FULLSCREEN: return [FlxKey.F];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
case Duo(false):
|
case Duo(false):
|
||||||
|
|
@ -757,15 +795,18 @@ class Controls extends FlxActionSet
|
||||||
case Control.BACK: return [ESCAPE];
|
case Control.BACK: return [ESCAPE];
|
||||||
case Control.PAUSE: return [ONE];
|
case Control.PAUSE: return [ONE];
|
||||||
case Control.RESET: return [R];
|
case Control.RESET: return [R];
|
||||||
case Control.SCREENSHOT: return [PRINTSCREEN];
|
case Control.WINDOW_SCREENSHOT: return [];
|
||||||
|
case Control.WINDOW_FULLSCREEN: return [];
|
||||||
|
case Control.FREEPLAY_FAVORITE: return [];
|
||||||
|
case Control.FREEPLAY_LEFT: return [];
|
||||||
|
case Control.FREEPLAY_RIGHT: return [];
|
||||||
case Control.CUTSCENE_ADVANCE: return [ENTER];
|
case Control.CUTSCENE_ADVANCE: return [ENTER];
|
||||||
case Control.DEBUG_MENU: return [GRAVEACCENT];
|
case Control.DEBUG_MENU: return [];
|
||||||
case Control.DEBUG_CHART: return [];
|
case Control.DEBUG_CHART: return [];
|
||||||
case Control.DEBUG_STAGE: return [];
|
case Control.DEBUG_STAGE: return [];
|
||||||
case Control.VOLUME_UP: return [NUMPADPLUS];
|
case Control.VOLUME_UP: return [NUMPADPLUS];
|
||||||
case Control.VOLUME_DOWN: return [NUMPADMINUS];
|
case Control.VOLUME_DOWN: return [NUMPADMINUS];
|
||||||
case Control.VOLUME_MUTE: return [NUMPADZERO];
|
case Control.VOLUME_MUTE: return [NUMPADZERO];
|
||||||
case Control.FULLSCREEN: return [];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
@ -856,34 +897,37 @@ class Controls extends FlxActionSet
|
||||||
public function addDefaultGamepad(id):Void
|
public function addDefaultGamepad(id):Void
|
||||||
{
|
{
|
||||||
addGamepadLiteral(id, [
|
addGamepadLiteral(id, [
|
||||||
|
|
||||||
Control.ACCEPT => getDefaultGamepadBinds(Control.ACCEPT),
|
Control.ACCEPT => getDefaultGamepadBinds(Control.ACCEPT),
|
||||||
Control.BACK => getDefaultGamepadBinds(Control.BACK),
|
Control.BACK => getDefaultGamepadBinds(Control.BACK),
|
||||||
Control.UI_UP => getDefaultGamepadBinds(Control.UI_UP),
|
Control.UI_UP => getDefaultGamepadBinds(Control.UI_UP),
|
||||||
Control.UI_DOWN => getDefaultGamepadBinds(Control.UI_DOWN),
|
Control.UI_DOWN => getDefaultGamepadBinds(Control.UI_DOWN),
|
||||||
Control.UI_LEFT => getDefaultGamepadBinds(Control.UI_LEFT),
|
Control.UI_LEFT => getDefaultGamepadBinds(Control.UI_LEFT),
|
||||||
Control.UI_RIGHT => getDefaultGamepadBinds(Control.UI_RIGHT),
|
Control.UI_RIGHT => getDefaultGamepadBinds(Control.UI_RIGHT),
|
||||||
// don't swap A/B or X/Y for switch on these. A is always the bottom face button
|
|
||||||
Control.NOTE_UP => getDefaultGamepadBinds(Control.NOTE_UP),
|
Control.NOTE_UP => getDefaultGamepadBinds(Control.NOTE_UP),
|
||||||
Control.NOTE_DOWN => getDefaultGamepadBinds(Control.NOTE_DOWN),
|
Control.NOTE_DOWN => getDefaultGamepadBinds(Control.NOTE_DOWN),
|
||||||
Control.NOTE_LEFT => getDefaultGamepadBinds(Control.NOTE_LEFT),
|
Control.NOTE_LEFT => getDefaultGamepadBinds(Control.NOTE_LEFT),
|
||||||
Control.NOTE_RIGHT => getDefaultGamepadBinds(Control.NOTE_RIGHT),
|
Control.NOTE_RIGHT => getDefaultGamepadBinds(Control.NOTE_RIGHT),
|
||||||
Control.PAUSE => getDefaultGamepadBinds(Control.PAUSE),
|
Control.PAUSE => getDefaultGamepadBinds(Control.PAUSE),
|
||||||
Control.RESET => getDefaultGamepadBinds(Control.RESET),
|
Control.RESET => getDefaultGamepadBinds(Control.RESET),
|
||||||
// Control.SCREENSHOT => [],
|
Control.WINDOW_FULLSCREEN => getDefaultGamepadBinds(Control.WINDOW_FULLSCREEN),
|
||||||
// Control.VOLUME_UP => [RIGHT_SHOULDER],
|
Control.WINDOW_SCREENSHOT => getDefaultGamepadBinds(Control.WINDOW_SCREENSHOT),
|
||||||
// Control.VOLUME_DOWN => [LEFT_SHOULDER],
|
|
||||||
// Control.VOLUME_MUTE => [RIGHT_TRIGGER],
|
|
||||||
Control.CUTSCENE_ADVANCE => getDefaultGamepadBinds(Control.CUTSCENE_ADVANCE),
|
Control.CUTSCENE_ADVANCE => getDefaultGamepadBinds(Control.CUTSCENE_ADVANCE),
|
||||||
// Control.DEBUG_MENU
|
Control.FREEPLAY_FAVORITE => getDefaultGamepadBinds(Control.FREEPLAY_FAVORITE),
|
||||||
// Control.DEBUG_CHART
|
Control.FREEPLAY_LEFT => getDefaultGamepadBinds(Control.FREEPLAY_LEFT),
|
||||||
|
Control.FREEPLAY_RIGHT => getDefaultGamepadBinds(Control.FREEPLAY_RIGHT),
|
||||||
|
Control.VOLUME_UP => getDefaultGamepadBinds(Control.VOLUME_UP),
|
||||||
|
Control.VOLUME_DOWN => getDefaultGamepadBinds(Control.VOLUME_DOWN),
|
||||||
|
Control.VOLUME_MUTE => getDefaultGamepadBinds(Control.VOLUME_MUTE),
|
||||||
|
Control.DEBUG_MENU => getDefaultGamepadBinds(Control.DEBUG_MENU),
|
||||||
|
Control.DEBUG_CHART => getDefaultGamepadBinds(Control.DEBUG_CHART),
|
||||||
|
Control.DEBUG_STAGE => getDefaultGamepadBinds(Control.DEBUG_STAGE),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDefaultGamepadBinds(control:Control):Array<FlxGamepadInputID> {
|
function getDefaultGamepadBinds(control:Control):Array<FlxGamepadInputID> {
|
||||||
switch(control) {
|
switch(control) {
|
||||||
case Control.ACCEPT: return [#if switch B #else A #end];
|
case Control.ACCEPT: return [#if switch B #else A #end];
|
||||||
case Control.BACK: return [#if switch A #else B #end, FlxGamepadInputID.BACK];
|
case Control.BACK: return [#if switch A #else B #end];
|
||||||
case Control.UI_UP: return [DPAD_UP, LEFT_STICK_DIGITAL_UP];
|
case Control.UI_UP: return [DPAD_UP, LEFT_STICK_DIGITAL_UP];
|
||||||
case Control.UI_DOWN: return [DPAD_DOWN, LEFT_STICK_DIGITAL_DOWN];
|
case Control.UI_DOWN: return [DPAD_DOWN, LEFT_STICK_DIGITAL_DOWN];
|
||||||
case Control.UI_LEFT: return [DPAD_LEFT, LEFT_STICK_DIGITAL_LEFT];
|
case Control.UI_LEFT: return [DPAD_LEFT, LEFT_STICK_DIGITAL_LEFT];
|
||||||
|
|
@ -893,15 +937,19 @@ class Controls extends FlxActionSet
|
||||||
case Control.NOTE_LEFT: return [DPAD_LEFT, X, LEFT_STICK_DIGITAL_LEFT, RIGHT_STICK_DIGITAL_LEFT];
|
case Control.NOTE_LEFT: return [DPAD_LEFT, X, LEFT_STICK_DIGITAL_LEFT, RIGHT_STICK_DIGITAL_LEFT];
|
||||||
case Control.NOTE_RIGHT: return [DPAD_RIGHT, B, LEFT_STICK_DIGITAL_RIGHT, RIGHT_STICK_DIGITAL_RIGHT];
|
case Control.NOTE_RIGHT: return [DPAD_RIGHT, B, LEFT_STICK_DIGITAL_RIGHT, RIGHT_STICK_DIGITAL_RIGHT];
|
||||||
case Control.PAUSE: return [START];
|
case Control.PAUSE: return [START];
|
||||||
case Control.RESET: return [RIGHT_SHOULDER];
|
case Control.RESET: return [FlxGamepadInputID.BACK]; // Back (i.e. Select)
|
||||||
case Control.SCREENSHOT: return [];
|
case Control.WINDOW_FULLSCREEN: [];
|
||||||
case Control.VOLUME_UP: return [];
|
case Control.WINDOW_SCREENSHOT: [];
|
||||||
case Control.VOLUME_DOWN: return [];
|
|
||||||
case Control.VOLUME_MUTE: return [];
|
|
||||||
case Control.CUTSCENE_ADVANCE: return [A];
|
case Control.CUTSCENE_ADVANCE: return [A];
|
||||||
case Control.DEBUG_MENU: return [];
|
case Control.FREEPLAY_FAVORITE: [FlxGamepadInputID.BACK]; // Back (i.e. Select)
|
||||||
case Control.DEBUG_CHART: return [];
|
case Control.FREEPLAY_LEFT: [LEFT_SHOULDER];
|
||||||
case Control.FULLSCREEN: return [];
|
case Control.FREEPLAY_RIGHT: [RIGHT_SHOULDER];
|
||||||
|
case Control.VOLUME_UP: [];
|
||||||
|
case Control.VOLUME_DOWN: [];
|
||||||
|
case Control.VOLUME_MUTE: [];
|
||||||
|
case Control.DEBUG_MENU: [];
|
||||||
|
case Control.DEBUG_CHART: [];
|
||||||
|
case Control.DEBUG_STAGE: [];
|
||||||
default:
|
default:
|
||||||
// Fallthrough.
|
// Fallthrough.
|
||||||
}
|
}
|
||||||
|
|
@ -1392,7 +1440,7 @@ class FlxActionInputDigitalAndroid extends FlxActionInputDigital
|
||||||
|
|
||||||
override public function check(Action:FlxAction):Bool
|
override public function check(Action:FlxAction):Bool
|
||||||
{
|
{
|
||||||
returnswitch(trigger)
|
return switch(trigger)
|
||||||
{
|
{
|
||||||
#if android
|
#if android
|
||||||
case PRESSED: FlxG.android.checkStatus(inputID, PRESSED) || FlxG.android.checkStatus(inputID, PRESSED);
|
case PRESSED: FlxG.android.checkStatus(inputID, PRESSED) || FlxG.android.checkStatus(inputID, PRESSED);
|
||||||
|
|
@ -1425,14 +1473,18 @@ enum Control
|
||||||
UI_RIGHT;
|
UI_RIGHT;
|
||||||
UI_DOWN;
|
UI_DOWN;
|
||||||
RESET;
|
RESET;
|
||||||
SCREENSHOT;
|
|
||||||
ACCEPT;
|
ACCEPT;
|
||||||
BACK;
|
BACK;
|
||||||
PAUSE;
|
PAUSE;
|
||||||
FULLSCREEN;
|
|
||||||
// CUTSCENE
|
// CUTSCENE
|
||||||
CUTSCENE_ADVANCE;
|
CUTSCENE_ADVANCE;
|
||||||
// SCREENSHOT
|
// FREEPLAY
|
||||||
|
FREEPLAY_FAVORITE;
|
||||||
|
FREEPLAY_LEFT;
|
||||||
|
FREEPLAY_RIGHT;
|
||||||
|
// WINDOW
|
||||||
|
WINDOW_SCREENSHOT;
|
||||||
|
WINDOW_FULLSCREEN;
|
||||||
// VOLUME
|
// VOLUME
|
||||||
VOLUME_UP;
|
VOLUME_UP;
|
||||||
VOLUME_DOWN;
|
VOLUME_DOWN;
|
||||||
|
|
@ -1475,11 +1527,15 @@ enum abstract Action(String) to String from String
|
||||||
var BACK = "back";
|
var BACK = "back";
|
||||||
var PAUSE = "pause";
|
var PAUSE = "pause";
|
||||||
var RESET = "reset";
|
var RESET = "reset";
|
||||||
var FULLSCREEN = "fullscreen";
|
// WINDOW
|
||||||
// SCREENSHOT
|
var WINDOW_FULLSCREEN = "window_fullscreen";
|
||||||
var SCREENSHOT = "screenshot";
|
var WINDOW_SCREENSHOT = "window_screenshot";
|
||||||
// CUTSCENE
|
// CUTSCENE
|
||||||
var CUTSCENE_ADVANCE = "cutscene_advance";
|
var CUTSCENE_ADVANCE = "cutscene_advance";
|
||||||
|
// FREEPLAY
|
||||||
|
var FREEPLAY_FAVORITE = "freeplay_favorite";
|
||||||
|
var FREEPLAY_LEFT = "freeplay_left";
|
||||||
|
var FREEPLAY_RIGHT = "freeplay_right";
|
||||||
// VOLUME
|
// VOLUME
|
||||||
var VOLUME_UP = "volume_up";
|
var VOLUME_UP = "volume_up";
|
||||||
var VOLUME_DOWN = "volume_down";
|
var VOLUME_DOWN = "volume_down";
|
||||||
|
|
|
||||||
|
|
@ -971,16 +971,18 @@ class FreeplayState extends MusicBeatSubState
|
||||||
grpCapsules.members[curSelected].ranking.scale.set(20, 20);
|
grpCapsules.members[curSelected].ranking.scale.set(20, 20);
|
||||||
grpCapsules.members[curSelected].blurredRanking.scale.set(20, 20);
|
grpCapsules.members[curSelected].blurredRanking.scale.set(20, 20);
|
||||||
|
|
||||||
grpCapsules.members[curSelected].ranking.animation.play(fromResults.newRank.getFreeplayRankIconAsset(), true);
|
if (fromResults?.newRank != null) {
|
||||||
// grpCapsules.members[curSelected].ranking.animation.curAnim.name, true);
|
grpCapsules.members[curSelected].ranking.animation.play(fromResults.newRank.getFreeplayRankIconAsset(), true);
|
||||||
|
}
|
||||||
|
|
||||||
FlxTween.tween(grpCapsules.members[curSelected].ranking, {"scale.x": 1, "scale.y": 1}, 0.1);
|
FlxTween.tween(grpCapsules.members[curSelected].ranking, {"scale.x": 1, "scale.y": 1}, 0.1);
|
||||||
|
|
||||||
grpCapsules.members[curSelected].blurredRanking.animation.play(fromResults.newRank.getFreeplayRankIconAsset(), true);
|
if (fromResults?.newRank != null) {
|
||||||
|
grpCapsules.members[curSelected].blurredRanking.animation.play(fromResults.newRank.getFreeplayRankIconAsset(), true);
|
||||||
|
}
|
||||||
FlxTween.tween(grpCapsules.members[curSelected].blurredRanking, {"scale.x": 1, "scale.y": 1}, 0.1);
|
FlxTween.tween(grpCapsules.members[curSelected].blurredRanking, {"scale.x": 1, "scale.y": 1}, 0.1);
|
||||||
|
|
||||||
new FlxTimer().start(0.1, _ -> {
|
new FlxTimer().start(0.1, _ -> {
|
||||||
// trace(grpCapsules.members[curSelected].ranking.rank);
|
|
||||||
if (fromResults?.oldRank != null)
|
if (fromResults?.oldRank != null)
|
||||||
{
|
{
|
||||||
grpCapsules.members[curSelected].fakeRanking.visible = false;
|
grpCapsules.members[curSelected].fakeRanking.visible = false;
|
||||||
|
|
@ -1009,7 +1011,6 @@ class FreeplayState extends MusicBeatSubState
|
||||||
FunkinSound.playOnce(Paths.sound('ranks/rankinnormal'));
|
FunkinSound.playOnce(Paths.sound('ranks/rankinnormal'));
|
||||||
}
|
}
|
||||||
rankCamera.zoom = 1.3;
|
rankCamera.zoom = 1.3;
|
||||||
// FlxTween.tween(rankCamera, {"zoom": 1.4}, 0.3, {ease: FlxEase.elasticOut});
|
|
||||||
|
|
||||||
FlxTween.tween(rankCamera, {"zoom": 1.5}, 0.3, {ease: FlxEase.backInOut});
|
FlxTween.tween(rankCamera, {"zoom": 1.5}, 0.3, {ease: FlxEase.backInOut});
|
||||||
|
|
||||||
|
|
@ -1027,13 +1028,11 @@ class FreeplayState extends MusicBeatSubState
|
||||||
new FlxTimer().start(0.4, _ -> {
|
new FlxTimer().start(0.4, _ -> {
|
||||||
FlxTween.tween(funnyCam, {"zoom": 1}, 0.8, {ease: FlxEase.sineIn});
|
FlxTween.tween(funnyCam, {"zoom": 1}, 0.8, {ease: FlxEase.sineIn});
|
||||||
FlxTween.tween(rankCamera, {"zoom": 1.2}, 0.8, {ease: FlxEase.backIn});
|
FlxTween.tween(rankCamera, {"zoom": 1.2}, 0.8, {ease: FlxEase.backIn});
|
||||||
// IntervalShake.shake(grpCapsules.members[curSelected], 0.8 + 0.5, 1 / 24, 0, 2, FlxEase.quadIn);
|
|
||||||
FlxTween.tween(grpCapsules.members[curSelected], {x: originalPos.x - 7, y: originalPos.y - 80}, 0.8 + 0.5, {ease: FlxEase.quartIn});
|
FlxTween.tween(grpCapsules.members[curSelected], {x: originalPos.x - 7, y: originalPos.y - 80}, 0.8 + 0.5, {ease: FlxEase.quartIn});
|
||||||
});
|
});
|
||||||
|
|
||||||
new FlxTimer().start(0.6, _ -> {
|
new FlxTimer().start(0.6, _ -> {
|
||||||
rankAnimSlam(fromResults);
|
rankAnimSlam(fromResults);
|
||||||
// IntervalShake.shake(grpCapsules.members[curSelected].capsule, 0.3, 1 / 30, 0, 0.3, FlxEase.quartIn);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1198,51 +1197,9 @@ class FreeplayState extends MusicBeatSubState
|
||||||
// {
|
// {
|
||||||
// rankAnimSlam(fromResultsParams);
|
// rankAnimSlam(fromResultsParams);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.G)
|
|
||||||
{
|
|
||||||
sparks.y -= 2;
|
|
||||||
trace(sparks.x, sparks.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.V)
|
|
||||||
{
|
|
||||||
sparks.x -= 2;
|
|
||||||
trace(sparks.x, sparks.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.N)
|
|
||||||
{
|
|
||||||
sparks.x += 2;
|
|
||||||
trace(sparks.x, sparks.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.B)
|
|
||||||
{
|
|
||||||
sparks.y += 2;
|
|
||||||
trace(sparks.x, sparks.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.I)
|
|
||||||
{
|
|
||||||
sparksADD.y -= 2;
|
|
||||||
trace(sparksADD.x, sparksADD.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.J)
|
|
||||||
{
|
|
||||||
sparksADD.x -= 2;
|
|
||||||
trace(sparksADD.x, sparksADD.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.L)
|
|
||||||
{
|
|
||||||
sparksADD.x += 2;
|
|
||||||
trace(sparksADD.x, sparksADD.y);
|
|
||||||
}
|
|
||||||
if (FlxG.keys.justPressed.K)
|
|
||||||
{
|
|
||||||
sparksADD.y += 2;
|
|
||||||
trace(sparksADD.x, sparksADD.y);
|
|
||||||
}
|
|
||||||
#end
|
#end
|
||||||
|
|
||||||
if (FlxG.keys.justPressed.F && !busy)
|
if (controls.FREEPLAY_FAVORITE && !busy)
|
||||||
{
|
{
|
||||||
var targetSong = grpCapsules.members[curSelected]?.songData;
|
var targetSong = grpCapsules.members[curSelected]?.songData;
|
||||||
if (targetSong != null)
|
if (targetSong != null)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import flixel.tweens.FlxTween;
|
||||||
import flixel.tweens.FlxEase;
|
import flixel.tweens.FlxEase;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
import flixel.util.FlxTimer;
|
import flixel.util.FlxTimer;
|
||||||
|
import funkin.input.Controls;
|
||||||
import funkin.graphics.adobeanimate.FlxAtlasSprite;
|
import funkin.graphics.adobeanimate.FlxAtlasSprite;
|
||||||
|
|
||||||
class LetterSort extends FlxTypedSpriteGroup<FlxSprite>
|
class LetterSort extends FlxTypedSpriteGroup<FlxSprite>
|
||||||
|
|
@ -69,14 +70,19 @@ class LetterSort extends FlxTypedSpriteGroup<FlxSprite>
|
||||||
changeSelection(0);
|
changeSelection(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var controls(get, never):Controls;
|
||||||
|
|
||||||
|
inline function get_controls():Controls
|
||||||
|
return PlayerSettings.player1.controls;
|
||||||
|
|
||||||
override function update(elapsed:Float):Void
|
override function update(elapsed:Float):Void
|
||||||
{
|
{
|
||||||
super.update(elapsed);
|
super.update(elapsed);
|
||||||
|
|
||||||
if (inputEnabled)
|
if (inputEnabled)
|
||||||
{
|
{
|
||||||
if (FlxG.keys.justPressed.E) changeSelection(1);
|
if (controls.FREEPLAY_LEFT) changeSelection(-1);
|
||||||
if (FlxG.keys.justPressed.Q) changeSelection(-1);
|
if (controls.FREEPLAY_RIGHT) changeSelection(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ class ControlsMenu extends funkin.ui.options.OptionsState.Page
|
||||||
[NOTE_UP, NOTE_DOWN, NOTE_LEFT, NOTE_RIGHT],
|
[NOTE_UP, NOTE_DOWN, NOTE_LEFT, NOTE_RIGHT],
|
||||||
[UI_UP, UI_DOWN, UI_LEFT, UI_RIGHT, ACCEPT, BACK],
|
[UI_UP, UI_DOWN, UI_LEFT, UI_RIGHT, ACCEPT, BACK],
|
||||||
[CUTSCENE_ADVANCE],
|
[CUTSCENE_ADVANCE],
|
||||||
|
[FREEPLAY_FAVORITE, FREEPLAY_LEFT, FREEPLAY_RIGHT],
|
||||||
|
[WINDOW_FULLSCREEN, WINDOW_SCREENSHOT],
|
||||||
[VOLUME_UP, VOLUME_DOWN, VOLUME_MUTE],
|
[VOLUME_UP, VOLUME_DOWN, VOLUME_MUTE],
|
||||||
[DEBUG_MENU, DEBUG_CHART]
|
[DEBUG_MENU, DEBUG_CHART]
|
||||||
];
|
];
|
||||||
|
|
@ -108,6 +110,18 @@ class ControlsMenu extends funkin.ui.options.OptionsState.Page
|
||||||
headers.add(new AtlasText(0, y, "CUTSCENE", AtlasFont.BOLD)).screenCenter(X);
|
headers.add(new AtlasText(0, y, "CUTSCENE", AtlasFont.BOLD)).screenCenter(X);
|
||||||
y += spacer;
|
y += spacer;
|
||||||
}
|
}
|
||||||
|
else if (currentHeader != "FREEPLAY_" && name.indexOf("FREEPLAY_") == 0)
|
||||||
|
{
|
||||||
|
currentHeader = "FREEPLAY_";
|
||||||
|
headers.add(new AtlasText(0, y, "FREEPLAY", AtlasFont.BOLD)).screenCenter(X);
|
||||||
|
y += spacer;
|
||||||
|
}
|
||||||
|
else if (currentHeader != "WINDOW_" && name.indexOf("WINDOW_") == 0)
|
||||||
|
{
|
||||||
|
currentHeader = "WINDOW_";
|
||||||
|
headers.add(new AtlasText(0, y, "WINDOW", AtlasFont.BOLD)).screenCenter(X);
|
||||||
|
y += spacer;
|
||||||
|
}
|
||||||
else if (currentHeader != "VOLUME_" && name.indexOf("VOLUME_") == 0)
|
else if (currentHeader != "VOLUME_" && name.indexOf("VOLUME_") == 0)
|
||||||
{
|
{
|
||||||
currentHeader = "VOLUME_";
|
currentHeader = "VOLUME_";
|
||||||
|
|
@ -123,10 +137,10 @@ class ControlsMenu extends funkin.ui.options.OptionsState.Page
|
||||||
|
|
||||||
if (currentHeader != null && name.indexOf(currentHeader) == 0) name = name.substr(currentHeader.length);
|
if (currentHeader != null && name.indexOf(currentHeader) == 0) name = name.substr(currentHeader.length);
|
||||||
|
|
||||||
var label = labels.add(new AtlasText(150, y, name, AtlasFont.BOLD));
|
var label = labels.add(new AtlasText(100, y, name, AtlasFont.BOLD));
|
||||||
label.alpha = 0.6;
|
label.alpha = 0.6;
|
||||||
for (i in 0...COLUMNS)
|
for (i in 0...COLUMNS)
|
||||||
createItem(label.x + 400 + i * 300, y, control, i);
|
createItem(label.x + 550 + i * 400, y, control, i);
|
||||||
|
|
||||||
y += spacer;
|
y += spacer;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ class WindowUtil
|
||||||
});
|
});
|
||||||
|
|
||||||
openfl.Lib.current.stage.addEventListener(openfl.events.KeyboardEvent.KEY_DOWN, (e:openfl.events.KeyboardEvent) -> {
|
openfl.Lib.current.stage.addEventListener(openfl.events.KeyboardEvent.KEY_DOWN, (e:openfl.events.KeyboardEvent) -> {
|
||||||
for (key in PlayerSettings.player1.controls.getKeysForAction(FULLSCREEN))
|
for (key in PlayerSettings.player1.controls.getKeysForAction(WINDOW_FULLSCREEN))
|
||||||
{
|
{
|
||||||
if (e.keyCode == key)
|
if (e.keyCode == key)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ class ScreenshotPlugin extends FlxBasic
|
||||||
|
|
||||||
public function hasPressedScreenshot():Bool
|
public function hasPressedScreenshot():Bool
|
||||||
{
|
{
|
||||||
return PlayerSettings.player1.controls.SCREENSHOT;
|
return PlayerSettings.player1.controls.WINDOW_SCREENSHOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updatePreferences():Void
|
public function updatePreferences():Void
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue