3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/game/IConfigListener.h"
7#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/deps/core/utility/pub_sub/Publisher.h"
10#include "mc/deps/input/InputMode.h"
11#include "mc/deps/input/enums/ButtonState.h"
12#include "mc/deps/input/enums/RawInputType.h"
30namespace Bedrock::PubSub::ThreadModel {
struct MultiThreaded; }
37 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputHandler>> mInputHandler;
38 ::ll::TypedStorage<4, 4, int> mControllerId;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
40 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>> mAdvancedGraphicsOptions;
41 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftBindingFactoryMap>> mBindingFactoryMap;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputMappingFactoryMap>> mMappingFactoryMap;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SplitscreenJoinListener>> mSplitscreenJoinListener;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputSettingsHandler>> mInputSettingsHandler;
48 ::Bedrock::PubSub::Publisher<void(::IClientInstance&), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
49 mAnyInputSubscription;
54 Publisher<void(
int, ::RawInputType, ::ButtonState,
bool), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
55 mRawInputEventPublisher;
60 Publisher<void(::IClientInstance&, ::InputMode), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
62 ::ll::TypedStorage<8, 8, ::MouseMapper*> mMouseMapper;
63 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputHandlerProxy>> mProxy;
68 MinecraftInputHandler();
73 virtual ~MinecraftInputHandler() ;
75 virtual void onConfigChanged(::Config
const& c) ;
77 virtual void _registerInputHandlers();
79 virtual void _registerDebugInputHandlers();
81 virtual ::std::unique_ptr<::ClientMoveInputHandler> _createClientMoveInputHandler() = 0;
87 MCAPI MinecraftInputHandler(
88 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
89 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions
92 MCAPI
void _registerMenuButton(::std::string
const& buttonName,
bool suspendable);
94 MCAPI
void init(::IGameModuleApp& gameModuleApp);
96 MCAPI ::ClientMoveInputHandler*
97 initClientInput(::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client, ::IGameModuleApp& gameModuleApp);
100 ::IMinecraftGame& mcGame,
101 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& primaryClient,
102 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap>
const& map,
103 bool allowMultipleClients
111 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
112 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions
125 MCAPI
void $onConfigChanged(::Config
const& c);
127 MCAPI
void $_registerInputHandlers();
129 MCAPI
void $_registerDebugInputHandlers();
Definition EnableNonOwnerReferences.h:7
Definition IAdvancedGraphicsOptions.h:16
Definition IClientInstance.h:5
Definition IConfigListener.h:5
Definition IGameModuleApp.h:5
Definition IMinecraftGame.h:5
Definition MinecraftBindingFactoryMap.h:5
Definition MouseMapper.h:5
Definition SplitscreenJoinListener.h:5
Definition MultiThreaded.h:12
Definition ControllerIDtoClientMap.h:13