2019-01-24 16:43:03 +08:00
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2018-04-13 17:19:50 +08:00
2017-08-09 16:10:32 +08:00
using System.Collections.Generic ;
2017-08-10 18:52:45 +08:00
using System.Linq ;
using osu.Framework.Graphics ;
2017-12-21 12:58:24 +08:00
using osu.Framework.Input ;
2017-08-11 15:11:46 +08:00
using osu.Framework.Input.Bindings ;
2021-09-16 16:02:04 +08:00
using osu.Framework.Localisation ;
using osu.Game.Localisation ;
2018-04-13 17:19:50 +08:00
2017-08-11 15:11:46 +08:00
namespace osu.Game.Input.Bindings
2017-08-09 16:10:32 +08:00
{
2019-08-27 17:42:49 +08:00
public class GlobalActionContainer : DatabasedKeyBindingContainer < GlobalAction > , IHandleGlobalKeyboardInput
2017-08-09 16:10:32 +08:00
{
2022-08-09 16:01:36 +08:00
private readonly Drawable ? handler ;
private InputManager ? parentInputManager ;
2018-04-13 17:19:50 +08:00
2022-08-11 19:38:08 +08:00
public GlobalActionContainer ( OsuGameBase ? game )
2020-03-02 17:54:00 +08:00
: base ( matchingMode : KeyCombinationMatchingMode . Modifiers )
2017-08-10 18:52:45 +08:00
{
2017-08-12 18:54:07 +08:00
if ( game is IKeyBindingHandler < GlobalAction > )
2017-08-10 18:52:45 +08:00
handler = game ;
}
2018-04-13 17:19:50 +08:00
2021-04-08 14:17:53 +08:00
protected override void LoadComplete ( )
{
base . LoadComplete ( ) ;
parentInputManager = GetContainingInputManager ( ) ;
}
2022-10-24 12:58:00 +08:00
// IMPORTANT: Take care when changing order of the items in the enumerable.
// It is used to decide the order of precedence, with the earlier items having higher precedence.
2021-04-07 16:13:25 +08:00
public override IEnumerable < IKeyBinding > DefaultKeyBindings = > GlobalKeyBindings
2021-04-07 16:41:05 +08:00
. Concat ( EditorKeyBindings )
2021-04-07 16:13:25 +08:00
. Concat ( InGameKeyBindings )
. Concat ( SongSelectKeyBindings )
2022-10-24 12:58:00 +08:00
. Concat ( AudioControlKeyBindings )
// Overlay bindings may conflict with more local cases like the editor so they are checked last.
// It has generally been agreed on that local screens like the editor should have priority,
// based on such usages potentially requiring a lot more key bindings that may be "shared" with global ones.
. Concat ( OverlayKeyBindings ) ;
2018-04-13 17:19:50 +08:00
2018-01-09 01:21:18 +08:00
public IEnumerable < KeyBinding > GlobalKeyBindings = > new [ ]
2017-08-09 16:10:32 +08:00
{
2020-03-02 17:55:28 +08:00
new KeyBinding ( InputKey . Up , GlobalAction . SelectPrevious ) ,
new KeyBinding ( InputKey . Down , GlobalAction . SelectNext ) ,
2022-05-04 21:46:23 +08:00
new KeyBinding ( InputKey . Left , GlobalAction . SelectPreviousGroup ) ,
new KeyBinding ( InputKey . Right , GlobalAction . SelectNextGroup ) ,
2018-07-03 17:37:21 +08:00
new KeyBinding ( InputKey . Space , GlobalAction . Select ) ,
new KeyBinding ( InputKey . Enter , GlobalAction . Select ) ,
2018-11-14 01:09:28 +08:00
new KeyBinding ( InputKey . KeypadEnter , GlobalAction . Select ) ,
2020-11-11 12:05:03 +08:00
2022-08-09 16:08:31 +08:00
new KeyBinding ( InputKey . Escape , GlobalAction . Back ) ,
new KeyBinding ( InputKey . ExtraMouseButton1 , GlobalAction . Back ) ,
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Home } , GlobalAction . Home ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . F } , GlobalAction . ToggleFPSDisplay ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . T } , GlobalAction . ToggleToolbar ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . S } , GlobalAction . ToggleSkinEditor ) ,
2022-08-11 01:34:53 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . P } , GlobalAction . ToggleProfile ) ,
2022-08-09 16:08:31 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Alt , InputKey . R } , GlobalAction . ResetInputSettings ) ,
2020-11-11 12:05:03 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . R } , GlobalAction . RandomSkin ) ,
2022-08-09 16:08:31 +08:00
new KeyBinding ( InputKey . F10 , GlobalAction . ToggleGameplayMouseButtons ) ,
new KeyBinding ( InputKey . F12 , GlobalAction . TakeScreenshot ) ,
2017-08-09 16:10:32 +08:00
} ;
2018-04-13 17:19:50 +08:00
2022-08-09 16:01:36 +08:00
public IEnumerable < KeyBinding > OverlayKeyBindings = > new [ ]
{
new KeyBinding ( InputKey . F8 , GlobalAction . ToggleChat ) ,
new KeyBinding ( InputKey . F6 , GlobalAction . ToggleNowPlaying ) ,
new KeyBinding ( InputKey . F9 , GlobalAction . ToggleSocial ) ,
2022-11-11 16:07:37 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . B } , GlobalAction . ToggleBeatmapListing ) ,
2022-08-09 16:01:36 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . O } , GlobalAction . ToggleSettings ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . N } , GlobalAction . ToggleNotifications ) ,
2017-08-09 16:10:32 +08:00
} ;
2018-04-13 17:19:50 +08:00
2020-09-22 14:55:25 +08:00
public IEnumerable < KeyBinding > EditorKeyBindings = > new [ ]
{
new KeyBinding ( new [ ] { InputKey . F1 } , GlobalAction . EditorComposeMode ) ,
new KeyBinding ( new [ ] { InputKey . F2 } , GlobalAction . EditorDesignMode ) ,
new KeyBinding ( new [ ] { InputKey . F3 } , GlobalAction . EditorTimingMode ) ,
new KeyBinding ( new [ ] { InputKey . F4 } , GlobalAction . EditorSetupMode ) ,
2021-04-12 15:15:27 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Shift , InputKey . A } , GlobalAction . EditorVerifyMode ) ,
2022-10-25 10:43:23 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . D } , GlobalAction . EditorCloneSelection ) ,
2021-04-22 17:47:04 +08:00
new KeyBinding ( new [ ] { InputKey . J } , GlobalAction . EditorNudgeLeft ) ,
new KeyBinding ( new [ ] { InputKey . K } , GlobalAction . EditorNudgeRight ) ,
2021-09-20 15:43:15 +08:00
new KeyBinding ( new [ ] { InputKey . G } , GlobalAction . EditorCycleGridDisplayMode ) ,
2021-11-12 13:13:11 +08:00
new KeyBinding ( new [ ] { InputKey . F5 } , GlobalAction . EditorTestGameplay ) ,
2022-06-02 11:27:11 +08:00
new KeyBinding ( new [ ] { InputKey . T } , GlobalAction . EditorTapForBPM ) ,
2022-01-05 15:46:34 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . H } , GlobalAction . EditorFlipHorizontally ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . J } , GlobalAction . EditorFlipVertically ) ,
2022-05-04 14:00:54 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Alt , InputKey . MouseWheelDown } , GlobalAction . EditorDecreaseDistanceSpacing ) ,
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Alt , InputKey . MouseWheelUp } , GlobalAction . EditorIncreaseDistanceSpacing ) ,
2020-09-22 14:55:25 +08:00
} ;
2018-01-09 01:21:18 +08:00
public IEnumerable < KeyBinding > InGameKeyBindings = > new [ ]
{
2018-01-23 12:05:07 +08:00
new KeyBinding ( InputKey . Space , GlobalAction . SkipCutscene ) ,
2020-08-18 14:21:44 +08:00
new KeyBinding ( InputKey . ExtraMouseButton2 , GlobalAction . SkipCutscene ) ,
2018-05-31 11:06:50 +08:00
new KeyBinding ( InputKey . Tilde , GlobalAction . QuickRetry ) ,
2019-06-24 17:19:17 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . Tilde } , GlobalAction . QuickExit ) ,
2021-10-29 10:13:06 +08:00
new KeyBinding ( new [ ] { InputKey . F3 } , GlobalAction . DecreaseScrollSpeed ) ,
new KeyBinding ( new [ ] { InputKey . F4 } , GlobalAction . IncreaseScrollSpeed ) ,
2020-12-01 10:38:16 +08:00
new KeyBinding ( new [ ] { InputKey . Shift , InputKey . Tab } , GlobalAction . ToggleInGameInterface ) ,
2020-07-12 22:03:03 +08:00
new KeyBinding ( InputKey . MouseMiddle , GlobalAction . PauseGameplay ) ,
2020-11-26 19:04:44 +08:00
new KeyBinding ( InputKey . Space , GlobalAction . TogglePauseReplay ) ,
2021-07-09 13:28:57 +08:00
new KeyBinding ( InputKey . Left , GlobalAction . SeekReplayBackward ) ,
new KeyBinding ( InputKey . Right , GlobalAction . SeekReplayForward ) ,
2020-10-30 13:19:40 +08:00
new KeyBinding ( InputKey . Control , GlobalAction . HoldForHUD ) ,
2021-08-19 13:19:59 +08:00
new KeyBinding ( InputKey . Tab , GlobalAction . ToggleChatFocus ) ,
2018-01-09 01:21:18 +08:00
} ;
2018-04-13 17:19:50 +08:00
2020-06-03 13:55:15 +08:00
public IEnumerable < KeyBinding > SongSelectKeyBindings = > new [ ]
{
2020-06-03 14:13:02 +08:00
new KeyBinding ( InputKey . F1 , GlobalAction . ToggleModSelection ) ,
new KeyBinding ( InputKey . F2 , GlobalAction . SelectNextRandom ) ,
new KeyBinding ( new [ ] { InputKey . Shift , InputKey . F2 } , GlobalAction . SelectPreviousRandom ) ,
2022-05-04 08:52:10 +08:00
new KeyBinding ( InputKey . F3 , GlobalAction . ToggleBeatmapOptions ) ,
2022-05-15 01:39:54 +08:00
new KeyBinding ( InputKey . BackSpace , GlobalAction . DeselectAllMods ) ,
2020-06-03 13:55:15 +08:00
} ;
2019-08-13 11:40:20 +08:00
public IEnumerable < KeyBinding > AudioControlKeyBindings = > new [ ]
{
2020-03-02 17:59:05 +08:00
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Up } , GlobalAction . IncreaseVolume ) ,
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Down } , GlobalAction . DecreaseVolume ) ,
2021-07-04 20:47:07 +08:00
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Left } , GlobalAction . PreviousVolumeMeter ) ,
new KeyBinding ( new [ ] { InputKey . Alt , InputKey . Right } , GlobalAction . NextVolumeMeter ) ,
2020-09-23 11:31:50 +08:00
new KeyBinding ( new [ ] { InputKey . Control , InputKey . F4 } , GlobalAction . ToggleMute ) ,
2019-08-13 11:40:20 +08:00
new KeyBinding ( InputKey . TrackPrevious , GlobalAction . MusicPrev ) ,
new KeyBinding ( InputKey . F1 , GlobalAction . MusicPrev ) ,
new KeyBinding ( InputKey . TrackNext , GlobalAction . MusicNext ) ,
new KeyBinding ( InputKey . F5 , GlobalAction . MusicNext ) ,
new KeyBinding ( InputKey . PlayPause , GlobalAction . MusicPlay ) ,
new KeyBinding ( InputKey . F3 , GlobalAction . MusicPlay )
} ;
2021-04-05 21:30:51 +08:00
protected override IEnumerable < Drawable > KeyBindingInputQueue
{
get
{
2021-04-08 14:17:53 +08:00
// To ensure the global actions are handled with priority, this GlobalActionContainer is actually placed after game content.
// It does not contain children as expected, so we need to forward the NonPositionalInputQueue from the parent input manager to correctly
// allow the whole game to handle these actions.
// An eventual solution to this hack is to create localised action containers for individual components like SongSelect, but this will take some rearranging.
var inputQueue = parentInputManager ? . NonPositionalInputQueue ? ? base . KeyBindingInputQueue ;
2021-03-30 18:03:15 +08:00
2021-04-05 21:30:51 +08:00
return handler ! = null ? inputQueue . Prepend ( handler ) : inputQueue ;
}
}
2017-08-10 18:52:45 +08:00
}
2018-04-13 17:19:50 +08:00
2017-08-10 18:52:45 +08:00
public enum GlobalAction
{
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleChat))]
2017-08-10 18:52:45 +08:00
ToggleChat ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSocial))]
2017-08-10 18:52:45 +08:00
ToggleSocial ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ResetInputSettings))]
2017-08-10 18:52:45 +08:00
ResetInputSettings ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleToolbar))]
2017-08-10 18:52:45 +08:00
ToggleToolbar ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSettings))]
2017-08-10 18:52:45 +08:00
ToggleSettings ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleBeatmapListing))]
2021-01-06 22:12:56 +08:00
ToggleBeatmapListing ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.IncreaseVolume))]
2017-08-22 13:44:13 +08:00
IncreaseVolume ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.DecreaseVolume))]
2017-08-22 13:44:13 +08:00
DecreaseVolume ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleMute))]
2018-01-17 00:46:54 +08:00
ToggleMute ,
2018-04-13 17:19:50 +08:00
2018-01-09 01:21:18 +08:00
// In-Game Keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SkipCutscene))]
2018-01-23 12:05:07 +08:00
SkipCutscene ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.QuickRetry))]
2018-01-23 12:05:07 +08:00
QuickRetry ,
2018-04-13 17:19:50 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.TakeScreenshot))]
2018-05-15 01:27:05 +08:00
TakeScreenshot ,
2019-02-28 12:31:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleGameplayMouseButtons))]
2018-05-02 18:42:03 +08:00
ToggleGameplayMouseButtons ,
2018-05-15 01:27:05 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Back))]
2018-05-31 11:06:50 +08:00
Back ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.IncreaseScrollSpeed))]
2018-05-31 11:06:50 +08:00
IncreaseScrollSpeed ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.DecreaseScrollSpeed))]
2018-05-31 11:06:50 +08:00
DecreaseScrollSpeed ,
2018-07-03 17:37:21 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Select))]
2018-07-03 17:37:21 +08:00
Select ,
2019-06-25 16:16:19 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.QuickExit))]
2019-06-25 16:16:19 +08:00
QuickExit ,
2019-08-12 01:14:49 +08:00
2020-09-22 14:55:25 +08:00
// Game-wide beatmap music controller keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicNext))]
2019-08-12 01:14:49 +08:00
MusicNext ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicPrev))]
2019-08-12 01:14:49 +08:00
MusicPrev ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.MusicPlay))]
2019-08-12 01:14:49 +08:00
MusicPlay ,
2020-01-12 03:43:51 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleNowPlaying))]
2020-01-12 03:43:51 +08:00
ToggleNowPlaying ,
2020-03-02 17:55:28 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectPrevious))]
2020-03-02 17:55:28 +08:00
SelectPrevious ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectNext))]
2020-03-02 17:55:28 +08:00
SelectNext ,
2020-06-15 02:22:38 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.Home))]
2020-06-15 02:22:38 +08:00
Home ,
2020-07-12 22:03:03 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleNotifications))]
2020-07-14 06:39:02 +08:00
ToggleNotifications ,
2020-07-14 19:37:21 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.PauseGameplay))]
2020-07-12 22:03:03 +08:00
PauseGameplay ,
2020-09-22 14:55:25 +08:00
// Editor
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorSetupMode))]
2020-09-22 14:55:25 +08:00
EditorSetupMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorComposeMode))]
2020-09-22 14:55:25 +08:00
EditorComposeMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorDesignMode))]
2020-09-22 14:55:25 +08:00
EditorDesignMode ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorTimingMode))]
2020-09-22 14:55:25 +08:00
EditorTimingMode ,
2020-10-30 13:19:40 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.HoldForHUD))]
2020-10-30 13:19:40 +08:00
HoldForHUD ,
2020-11-11 12:05:03 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.RandomSkin))]
2020-11-11 12:05:03 +08:00
RandomSkin ,
2020-11-24 14:41:56 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.TogglePauseReplay))]
2020-11-26 19:04:44 +08:00
TogglePauseReplay ,
2020-12-01 10:38:16 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleInGameInterface))]
2020-12-01 10:38:16 +08:00
ToggleInGameInterface ,
2021-04-07 16:13:25 +08:00
2020-06-07 11:37:19 +08:00
// Song select keybindings
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleModSelection))]
2020-06-07 11:37:19 +08:00
ToggleModSelection ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectNextRandom))]
2020-06-07 11:37:19 +08:00
SelectNextRandom ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectPreviousRandom))]
2020-06-07 11:37:19 +08:00
SelectPreviousRandom ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleBeatmapOptions))]
2020-06-07 11:37:19 +08:00
ToggleBeatmapOptions ,
2021-04-12 15:15:27 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorVerifyMode))]
2021-04-12 15:15:27 +08:00
EditorVerifyMode ,
2021-04-22 17:47:04 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorNudgeLeft))]
2021-04-22 17:47:04 +08:00
EditorNudgeLeft ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorNudgeRight))]
2021-04-29 16:20:22 +08:00
EditorNudgeRight ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleSkinEditor))]
2021-04-29 16:20:22 +08:00
ToggleSkinEditor ,
2021-07-04 20:47:07 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.PreviousVolumeMeter))]
2021-07-04 20:47:07 +08:00
PreviousVolumeMeter ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.NextVolumeMeter))]
2021-07-04 20:47:07 +08:00
NextVolumeMeter ,
2021-07-09 13:28:57 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SeekReplayForward))]
2021-07-09 13:28:57 +08:00
SeekReplayForward ,
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SeekReplayBackward))]
2021-07-09 13:28:57 +08:00
SeekReplayBackward ,
2021-08-17 14:05:36 +08:00
2021-09-16 16:02:04 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleChatFocus))]
2021-09-20 15:43:15 +08:00
ToggleChatFocus ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorCycleGridDisplayMode))]
2021-11-12 13:13:11 +08:00
EditorCycleGridDisplayMode ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorTestGameplay))]
2022-01-05 15:46:34 +08:00
EditorTestGameplay ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorFlipHorizontally))]
EditorFlipHorizontally ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorFlipVertically))]
EditorFlipVertically ,
2022-05-04 08:52:10 +08:00
2022-05-04 14:00:54 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorIncreaseDistanceSpacing))]
EditorIncreaseDistanceSpacing ,
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorDecreaseDistanceSpacing))]
EditorDecreaseDistanceSpacing ,
2022-05-04 21:48:49 +08:00
2022-05-04 21:46:23 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectPreviousGroup))]
SelectPreviousGroup ,
2022-05-04 08:52:10 +08:00
2022-05-04 21:46:23 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.SelectNextGroup))]
SelectNextGroup ,
2022-05-15 01:39:54 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.DeselectAllMods))]
DeselectAllMods ,
2022-06-02 11:27:11 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorTapForBPM))]
EditorTapForBPM ,
2022-07-20 20:05:20 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleFPSCounter))]
ToggleFPSDisplay ,
2022-08-09 15:17:55 +08:00
2022-08-09 16:09:22 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.ToggleProfile))]
ToggleProfile ,
2022-10-24 12:58:11 +08:00
2022-10-25 10:43:23 +08:00
[LocalisableDescription(typeof(GlobalActionKeyBindingStrings), nameof(GlobalActionKeyBindingStrings.EditorCloneSelection))]
EditorCloneSelection
2017-08-09 16:10:32 +08:00
}
}