3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/input/ClientInputMappingFactory.h"
7#include "mc/client/input/vanilla/remapping/ActionEnum.h"
8#include "mc/deps/core/utility/pub_sub/Subscription.h"
9#include "mc/deps/input/enums/FocusImpact.h"
13class GamePadRemappingLayout;
29 ::ll::TypedStorage<1, 1, bool> mIsEdu;
30 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IOptions>> mOptions;
31 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mRegenerateTemplatesDueToScriptKeys;
37 virtual void createInputMappingTemplates(::IOptions& options) ;
39 virtual void _updateKeyboardAndMouseControls(::IOptions& options) ;
41 virtual void _updateGameControllerControls() ;
43 virtual void _updateTouchMappingControls() ;
53 MCAPI
void _addClassicDPadButtons(
::TouchInputMapping& touchMapping,
bool sneak,
bool jump)
const;
55 MCAPI
void _addDebugChords(::std::vector<::ChordButtonMapping>& result);
60 MCAPI
void _addFullKeyboardGamePlayControls(
63 bool withInventoryCycle
68 MCAPI
void _addGameplayMouseControls(
77 MCAPI
void _addInvariantKeyboardControls(
87 MCAPI
void _bindActionToGameControllerInput(
89 ::GamePadRemappingLayout
const& layout,
90 ::std::string
const& buttonID,
91 ::Remapping::ActionEnum action,
92 float triggerThreshold,
96 MCAPI
void _bindActionToKeyboardAndMouseInput(
99 ::std::string
const& buttonID,
100 ::Remapping::ActionEnum action,
101 ::FocusImpact focusImpact
104 MCAPI
void _createBaseNormalGamePlayKeyboardAndMouseMapping(
113 MCAPI ::TestAutoInputMapping _createBedTestAutoInputMapping();
115 MCAPI ::TouchInputMapping _createBedTouchMapping();
117 MCAPI ::GameControllerInputMapping _createBoatAndMinecartGameControllerMapping();
119 MCAPI
void _createBoatKeyboardAndMouseMapping(
124 MCAPI ::TestAutoInputMapping _createBoatTestAutoInputMapping();
126 MCAPI ::TouchInputMapping _createBoatTouchMapping();
131 MCAPI ::TouchInputMapping _createDeathTouchMapping();
133 MCAPI ::GameControllerInputMapping _createEmoteGameControllerMapping();
135 MCAPI
void _createExpediateEmoteKeyboardAndMouseMapping(
140 MCFOLD ::GameControllerInputMapping _createFlyingGameControllerMapping();
142 MCAPI ::TouchInputMapping _createFlyingTouchMapping();
144 MCAPI ::GameControllerInputMapping _createGazeMouseControllerMapping();
146 MCAPI ::GameControllerInputMapping _createGazeScreenGameControllerMapping();
148 MCAPI ::TouchInputMapping _createInScaffoldingTouchMapping();
150 MCAPI ::GameControllerInputMapping _createInWaterGameControllerMapping();
152 MCAPI ::TouchInputMapping _createInWaterTouchMapping();
154 MCAPI ::TouchInputMapping _createMinecartTouchMapping();
156 MCAPI ::std::vector<::ChordButtonMapping> _createNormalGamePlayChordMapping(
bool withDropAll);
158 MCAPI ::std::vector<::DeviceButtonMapping> _createNormalGamePlayDeviceButtonMapping();
160 MCAPI ::GameControllerInputMapping _createNormalGamePlayGameControllerMapping();
162 MCAPI ::TestAutoInputMapping _createNormalGamePlayTestAutoInputMapping();
164 MCAPI ::TouchInputMapping _createNormalGamePlayTouchMapping();
166 MCAPI ::GameControllerInputMapping _createRideableGameControllerMapping();
168 MCAPI
void _createRideableKeyboardAndMouseMapping(
173 MCAPI ::TouchInputMapping _createRideableTouchMapping();
175 MCAPI ::std::vector<::ChordButtonMapping> _createScreenChordMapping();
177 MCAPI ::GameControllerInputMapping _createScreenGameControllerMapping();
179 MCAPI
void _createScreenKeyboardAndMouseMapping(
184 MCAPI ::KeyboardInputMapping _createScreenKeyboardMapping();
186 MCAPI ::MouseInputMapping _createScreenMouseMapping();
188 MCAPI ::TestAutoInputMapping _createScreenTestAutoInputMapping();
190 MCAPI ::GameControllerInputMapping _createSpectatorModeGameControllerMapping();
192 MCAPI
void _createSpectatorModeKeyboardAndMouseMapping(
197 MCAPI ::TestAutoInputMapping _createSpectatorModeTestAutoInputMapping();
199 MCAPI ::TouchInputMapping _createSpectatorModeTouchMapping();
201 MCFOLD ::GameControllerInputMapping _createSwimmingGameControllerMapping();
203 MCAPI
void _createSwimmingKeyboardAndMouseMapping(
208 MCAPI
bool _hasSwappedJumpAndSneak()
const;
210 MCAPI
bool _isUsingActionButtons()
const;
212 MCAPI
bool _isUsingNewTouchControls()
const;
214 MCAPI
void _populateFullKeyboardDefaults(::RemappingLayout& layout)
const;
216 MCAPI
void _populateGamepadDefaults(::RemappingLayout& layout)
const;
218 MCAPI
void _populateKeyboardDefaults(::RemappingLayout& layout)
const;
220 MCAPI
bool _shouldAddBinding(
221 ::std::string action,
223 ::std::unordered_map<::std::string, ::std::unordered_set<int>>& actionToKeyMap
230 MCAPI
void $createInputMappingTemplates(::IOptions& options);
232 MCAPI
void $_updateKeyboardAndMouseControls(::IOptions& options);
234 MCAPI
void $_updateGameControllerControls();
236 MCAPI
void $_updateTouchMappingControls();