3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/input/InputBindingMode.h"
8#include "mc/deps/input/InputMode.h"
9#include "mc/deps/input/enums/ButtonState.h"
10#include "mc/deps/input/enums/DirectionId.h"
11#include "mc/deps/input/enums/FocusImpact.h"
12#include "mc/deps/input/enums/RawInputType.h"
49 ::ll::TypedStorage<4, 4, ::InputMode> mCurrentInputMode;
50 ::ll::TypedStorage<4, 4, ::InputBindingMode> mCurrentBindingMode;
51 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mInputMappingStack;
52 ::ll::TypedStorage<8, 64, ::std::unordered_set<uint>> mButtonsDown;
53 ::ll::TypedStorage<8, 64, ::std::unordered_set<int>> mTriggeredChordsSources;
54 ::ll::TypedStorage<4, 4, int> mCurrentChordSource;
55 ::ll::TypedStorage<1, 1, bool> mSuspendInput;
56 ::ll::TypedStorage<1, 1, bool> mSuspendDirectionalInput;
57 ::ll::TypedStorage<1, 1, bool> mDisableInput;
75 using ButtonPressHandler = ::std::function<void(::FocusImpact,
::IClientInstance&)>;
77 using TextCharHandler = ::std::function<void(::std::string
const&, ::FocusImpact,
::IClientInstance&)>;
79 using PointerLocationHandler =
82 using PointerLocationWithIdHandler =
85 using ClearPointerLocationWithIdHandler =
90 using DirectionHandler = ::std::function<void(
float,
float, ::FocusImpact,
::IClientInstance&)>;
92 using TurnHandler = ::std::function<void(
float,
float, ::FocusImpact,
::IClientInstance&)>;
94 using VectorHandler = ::std::function<void(
short,
float,
float,
float, ::FocusImpact,
::IClientInstance&)>;
98 using RawInputHandler = ::std::function<void(
int, ::RawInputType, ::ButtonState,
bool,
::IClientInstance&)>;
100 using AddClientHandler = ::std::function<void(
::IMinecraftGame*,
int,
bool)>;
102 using ChangeUserHandler = ::std::function<void(
::IMinecraftGame*,
int,
bool)>;
104 using ControllerConnectionStateChangeHandler = ::std::function<void(
::IClientInstance&,
bool,
int)>;
106 using TouchPadTouchHandler =
111 using NumberOfEnabledControlOptionsHandler =
116 using PotentialOverlappingControlsHandler = ::std::function<void(
::IClientInstance&)>;
118 using InputModeHandlers = ::std::vector<::std::function<void(::InputMode,
::IClientInstance&)>>;
120 using ButtonHandlerMap =
121 ::std::multimap<uint, ::std::pair<bool, ::std::function<void(::FocusImpact,
::IClientInstance&)>>>;
123 using TextCharHandlers =
124 ::std::vector<::std::function<void(::std::string
const&, ::FocusImpact,
::IClientInstance&)>>;
126 using PointerLocationHandlers =
129 using PointerLocationWithIdHandlers =
132 using ClearPointerLocationWithIdHandlers =
135 using ClearPointerLocationsHandlers = ::std::vector<::std::function<void(
::IClientInstance&)>>;
137 using DirectionHandlerMap =
138 ::std::multimap<::DirectionId, ::std::function<void(
float,
float, ::FocusImpact,
::IClientInstance&)>>;
140 using VectorHandlers =
141 ::std::vector<::std::function<void(
short,
float,
float,
float, ::FocusImpact,
::IClientInstance&)>>;
143 using TouchPadHandlers =
146 using PointerLocationWithIdHandlersMap =
149 using ControlOptionHandlers =
152 using NumberOfEnabledControlOptionsHandlers =
155 using OverlappingControlsHandlers =
158 using PotentialOverlappingControlsHandlers = ::std::vector<::std::function<void(
::IClientInstance&)>>;
163 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(::InputMode,
::IClientInstance&)>>> mInputModeHandlers;
167 ::std::multimap<uint, ::std::pair<bool, ::std::function<void(::FocusImpact,
::IClientInstance&)>>>>
168 mButtonDownHandlerMap;
172 ::std::multimap<uint, ::std::pair<bool, ::std::function<void(::FocusImpact,
::IClientInstance&)>>>>
177 ::std::vector<::std::function<void(::std::string
const&, ::FocusImpact,
::IClientInstance&)>>>
183 mPointerLocationHandlers;
188 mPointerLocationWithIdHandlers;
193 mClearPointerLocationWithIdHandlers;
194 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(
::IClientInstance&)>>> mClearPointerLocationsHandlers;
198 ::std::multimap<::DirectionId, ::std::function<void(
float,
float, ::FocusImpact,
::IClientInstance&)>>>
199 mDirectionHandlerMap;
200 ::ll::TypedStorage<8, 64, ::std::function<void(
::IClientInstance&)>> mAnyInputHandler;
201 ::ll::TypedStorage<8, 64, ::std::function<void(
int, ::RawInputType, ::ButtonState,
bool,
::IClientInstance&)>>
203 ::ll::TypedStorage<8, 64, ::std::function<void(
::IMinecraftGame*,
int,
bool)>> mAddClientHandler;
204 ::ll::TypedStorage<8, 64, ::std::function<void(
::IMinecraftGame*,
int,
bool)>> mChangeUserHandler;
206 mControllerConnectionStateChangeHandler;
218 mControlOptionHandlers;
223 mNumberOfEnabledControlOptionsHandlers;
228 mOverlappingControlsHandlers;
229 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void(
::IClientInstance&)>>>
230 mPotentialOverlappingControlsHandlers;
231 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputEventQueue>> mInputEventQueue;
232 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ButtonChordTracker>> mChordTracker;
233 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ButtonRepeater>> mButtonRepeater;
234 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::InputDeviceMapper>>> mInputDeviceMappers;
235 ::ll::TypedStorage<8, 8, ::BindingFactoryMap&> mBindingFactoryMap;
236 ::ll::TypedStorage<8, 8, ::InputMappingFactoryMap&> mInputMappingFactoryMap;
237 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::InputHandler::InputHandlerState>> mPerIdState;
238 ::ll::TypedStorage<4, 4, int> mPrimaryGameControllerId;
243 InputHandler& operator=(InputHandler
const&);
244 InputHandler(InputHandler
const&);
253 ::InputMode startingInputMode,
254 ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>
const& debugSplitscreenInputRedirect
278 MCAPI
void registerButtonDownHandler(
279 ::std::string buttonName,
284 MCAPI
void registerButtonUpHandler(
285 ::std::string buttonName,
325 ::std::function<
void(
int, ::RawInputType, ::ButtonState,
bool,
::IClientInstance&)> handler
342 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap>
const& controllerClientMap,
343 bool allowMultipleClients
348 MCAPI ~InputHandler();
357 ::InputMode startingInputMode,
358 ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>
const& debugSplitscreenInputRedirect
Definition BindingFactoryMap.h:5
Definition IClientInstance.h:5
Definition IMinecraftGame.h:5
Definition InputRenderContext.h:5
Definition ClearPointerLocationWithIdEventData.h:5
Definition ControlOptionEventData.h:5
Definition ControllerIDtoClientMap.h:5
Definition NumberOfEnabledControlOptionsEventData.h:5
Definition OverlappingControlsEventData.h:5
Definition PointerLocationEventData.h:5
Definition PointerLocationWithIdEventData.h:5
Definition TouchPadTouchEventData.h:5