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; }
38 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputHandler>> mInputHandler;
39 ::ll::TypedStorage<4, 4, int> mControllerId;
40 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
41 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>> mAdvancedGraphicsOptions;
42 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>>
43 mDebugSplitscreenInputRedirect;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftBindingFactoryMap>> mBindingFactoryMap;
45 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputMappingFactoryMap>> mMappingFactoryMap;
46 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SplitscreenJoinListener>> mSplitscreenJoinListener;
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InputSettingsHandler>> mInputSettingsHandler;
51 ::Bedrock::PubSub::Publisher<void(::IClientInstance&), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
52 mAnyInputSubscription;
57 Publisher<void(
int, ::RawInputType, ::ButtonState,
bool), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
58 mRawInputEventPublisher;
63 Publisher<void(::IClientInstance&, ::InputMode), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
65 ::ll::TypedStorage<8, 8, ::MouseMapper*> mMouseMapper;
66 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecraftInputHandlerProxy>> mProxy;
71 MinecraftInputHandler();
76 virtual ~MinecraftInputHandler() ;
78 virtual void onConfigChanged(::Config
const& c) ;
80 virtual void _registerInputHandlers();
82 virtual void _registerDebugInputHandlers();
84 virtual ::std::unique_ptr<::ClientMoveInputHandler> _createClientMoveInputHandler() = 0;
90 MCAPI MinecraftInputHandler(
91 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
92 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions,
93 ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>
const& debugSplitscreenInputRedirect
96 MCAPI
void _registerMenuButton(::std::string
const& buttonName,
bool suspendable);
99 getCursorPos(
float& xCursor,
float& yCursor, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client)
const;
101 MCAPI
void init(::IGameModuleApp& gameModuleApp);
103 MCAPI ::ClientMoveInputHandler*
104 initClientInput(::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client, ::IGameModuleApp& gameModuleApp);
107 ::IMinecraftGame& mcGame,
108 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& primaryClient,
109 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap>
const& map,
110 bool allowMultipleClients
118 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client,
119 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>
const& advancedGraphicsOptions,
120 ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>
const& debugSplitscreenInputRedirect
133 MCAPI
void $onConfigChanged(::Config
const& c);
135 MCAPI
void $_registerInputHandlers();
137 MCAPI
void $_registerDebugInputHandlers();
Definition EnableNonOwnerReferences.h:7
Definition IAdvancedGraphicsOptions.h:10
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:7
Definition ControllerIDtoClientMap.h:5