LeviLamina
Loading...
Searching...
No Matches
ChatScreenController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/screens/IntellisenseHandler.h"
9#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
10#include "mc/client/gui/screens/controllers/HostOptionStates.h"
11#include "mc/deps/core/math/Vec3.h"
12#include "mc/deps/core/utility/pub_sub/Subscription.h"
13#include "mc/world/level/BlockPos.h"
14
15// auto generated forward declare list
16// clang-format off
18class StringHash;
20namespace Json { class Value; }
21// clang-format on
22
24public:
25 // ChatScreenController inner types define
26 enum class SelectionDirection : int {
27 Next = 0,
28 Previous = 1,
29 };
30
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<8, 32, ::std::string> mCurrentMessage;
35 ::ll::TypedStorage<8, 32, ::std::string> mCurrentHistoryPrefix;
36 ::ll::TypedStorage<1, 1, bool> mRefreshChatMessages;
37 ::ll::TypedStorage<1, 1, bool> mLockMessagesUpdates;
38 ::ll::TypedStorage<1, 1, bool> mScrollChatToBottom;
39 ::ll::TypedStorage<1, 1, bool> mHasUnreadMessages;
40 ::ll::TypedStorage<8, 8, uint64> mCurrentSentMessageIndex;
41 ::ll::TypedStorage<1, 1, bool> mNeedsLayoutUpdate;
42 ::ll::TypedStorage<1, 1, bool> mLastKeyboardActive;
43 ::ll::TypedStorage<1, 1, bool> mUpdateCoordinateUI;
44 ::ll::TypedStorage<1, 1, bool> mIsDevConsole;
45 ::ll::TypedStorage<1, 1, bool> mSendMessage;
46 ::ll::TypedStorage<1, 1, bool> mUpdateIntellisense;
47 ::ll::TypedStorage<8, 104, ::IntellisenseHandler> mIntellisense;
48 ::ll::TypedStorage<4, 4, ::HostOptionStates> mCurrentHostOption;
49 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mHostCommands;
50 ::ll::TypedStorage<4, 4, uint> mExpectedCommandDepth;
51 ::ll::TypedStorage<8, 32, ::std::string> mTeleportWhoName;
52 ::ll::TypedStorage<8, 32, ::std::string> mTeleportWhereName;
53 ::ll::TypedStorage<8, 32, ::std::string> mDeferedCollectionFocusName;
54 ::ll::TypedStorage<4, 4, int> mDeferedCollectionFocusIndex;
55 ::ll::TypedStorage<1, 1, bool> mWaitOneTick;
56 ::ll::TypedStorage<1, 1, bool> mChatTextBoxNeedsUpdate;
57 ::ll::TypedStorage<4, 12, ::Vec3> mPositionCoordinates;
58 ::ll::TypedStorage<4, 16, ::std::optional<::BlockPos>> mFacingCoordinates;
59 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::HostOptionStates, ::std::string>>> mMainHostButtons;
60 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mProfanityToggleSubscription;
61 ::ll::TypedStorage<1, 1, bool> mShouldUseFilteredMessage;
62 // NOLINTEND
63
64public:
65 // prevent constructor by default
66 ChatScreenController();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual ~ChatScreenController() /*override*/;
72
73 virtual void onInit() /*override*/;
74
75 virtual void onOpen() /*override*/;
76
77 virtual void onEntered() /*override*/;
78
79 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
80
81 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) /*override*/;
82
83 virtual ::ui::DirtyFlag tick() /*override*/;
84 // NOLINTEND
85
86public:
87 // member functions
88 // NOLINTBEGIN
89 MCAPI
90 ChatScreenController(::std::shared_ptr<::ClientInstanceScreenModel> model, bool openWithCommand, bool isDevConsole);
91
92 MCAPI void _buildHostButtons();
93
94 MCAPI void _getBottomButtonFocusOverrideDown(::std::string& focusOverride);
95
96 MCAPI void _getBottomButtonFocusOverrideUp(::std::string& focusOverride, uint64 lastIndex);
97
98 MCAPI ::std::string _getExitMessage() const;
99
100 MCAPI ::std::optional<uint64> _getNextMessageIndex(
101 ::ChatScreenController::SelectionDirection direction,
102 ::std::deque<::std::string> const& sentMessages
103 ) const;
104
105 MCAPI ::std::string _getSendMessage() const;
106
107 MCAPI void _handleChatMessage(::std::string const& message, ::std::string const& ttsMessage);
108
109 MCAPI void _handleSelectSentMessage(::ChatScreenController::SelectionDirection direction);
110
111 MCAPI bool _hostOptionNavigation();
112
113 MCAPI void _initScreenControllerProxy();
114
115 MCAPI void _refreshChatMessages();
116
117 MCAPI void _refreshDevConsoleScreenMessages();
118
119 MCAPI void _registerBindings();
120
121 MCAPI void _registerBindingsHostOptions();
122
123 MCAPI void _registerBindingsSubCommand(
124 ::std::vector<::HostOptionSubCommand>& subCommandButtons,
125 ::StringHash const& gridName,
126 ::StringHash const& collectionName
127 );
128
129 MCAPI void _registerEventHandlers();
130
131 MCAPI void _registerEventHandlersHostOptions();
132
133 MCAPI void _registerSubControllers();
134
135 MCAPI void _sendChatMessage();
136
137 MCAPI void _teleportWhereHelper();
138
139 MCAPI void _teleportWhoHelper();
140 // NOLINTEND
141
142public:
143 // static variables
144 // NOLINTBEGIN
145 MCAPI static char const* const& DEV_CONSOLE_SCREEN_NAME();
146 // NOLINTEND
147
148public:
149 // constructor thunks
150 // NOLINTBEGIN
151 MCAPI void* $ctor(::std::shared_ptr<::ClientInstanceScreenModel> model, bool openWithCommand, bool isDevConsole);
152 // NOLINTEND
153
154public:
155 // destructor thunk
156 // NOLINTBEGIN
157 MCAPI void $dtor();
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCAPI void $onInit();
164
165 MCAPI void $onOpen();
166
167 MCAPI void $onEntered();
168
169 MCAPI void $addStaticScreenVars(::Json::Value& globalVars);
170
171 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
172
173 MCAPI ::ui::DirtyFlag $tick();
174 // NOLINTEND
175
176public:
177 // vftables
178 // NOLINTBEGIN
180
181 MCNAPI static void** $vftableForScreenController();
182 // NOLINTEND
183};
Definition ChatScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition Value.h:16
Definition StringHash.h:5
Definition HostOptionSubCommand.h:5