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/enums/ButtonState.h"
11#include "mc/deps/input/enums/RawInputType.h"
29namespace Bedrock::PubSub::ThreadModel {
struct MultiThreaded; }
36 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputHandler>> mInputHandler;
37 ::ll::TypedStorage<4, 4, int> mControllerId;
38 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>> mAdvancedGraphicsOptions;
40 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftBindingFactoryMap>> mBindingFactoryMap;
41 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputMappingFactoryMap>> mMappingFactoryMap;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SplitscreenJoinListener>> mSplitscreenJoinListener;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputSettingsHandler>> mInputSettingsHandler;
47 ::Bedrock::PubSub::Publisher<void(::IClientInstance&), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
48 mAnyInputSubscription;
53 Publisher<void(
int, ::RawInputType, ::ButtonState,
bool), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
54 mRawInputEventPublisher;
55 ::ll::TypedStorage<8, 8, ::MouseMapper*> mMouseMapper;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputHandlerProxy>> mProxy;
61 MinecraftInputHandler();
66 virtual ~MinecraftInputHandler() ;
68 virtual void onConfigChanged(::Config
const& c) ;
70 virtual void _registerInputHandlers();
72 virtual void _registerDebugInputHandlers();
74 virtual ::std::unique_ptr<::ClientMoveInputHandler> _createClientMoveInputHandler() = 0;
80 MCAPI MinecraftInputHandler(
81 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
82 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions
85 MCAPI
void _registerMenuButton(::std::string
const& buttonName,
bool suspendable);
87 MCAPI
void init(::IGameModuleApp& gameModuleApp);
89 MCAPI ::ClientMoveInputHandler*
90 initClientInput(::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client, ::IGameModuleApp& gameModuleApp);
93 ::IMinecraftGame& mcGame,
94 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& primaryClient,
95 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap>
const& map,
96 bool allowMultipleClients
104 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
105 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions
118 MCAPI
void $onConfigChanged(::Config
const& c);
120 MCAPI
void $_registerInputHandlers();
122 MCAPI
void $_registerDebugInputHandlers();
Definition EnableNonOwnerReferences.h:7
Definition IAdvancedGraphicsOptions.h:10
Definition IClientInstance.h:5
Definition IConfigListener.h:5
Definition IMinecraftGame.h:5
Definition MinecraftBindingFactoryMap.h:5
Definition MouseMapper.h:5
Definition SplitscreenJoinListener.h:5
Definition MultiThreaded.h:7
Definition ControllerIDtoClientMap.h:13
Definition IGameModuleApp.h:5