Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
UIScene.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/GameEventNotification.h"
7#include "mc/client/gui/SceneType.h"
8#include "mc/client/gui/screens/BaseScreen.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/deps/input/InputMode.h"
11#include "mc/deps/input/TextboxTextUpdateReason.h"
12#include "mc/deps/input/enums/ButtonState.h"
13#include "mc/deps/input/enums/DirectionId.h"
14#include "mc/deps/input/enums/FocusImpact.h"
15#include "mc/deps/input/enums/RawInputType.h"
16
17// auto generated forward declare list
18// clang-format off
19class AbstractScene;
21class CachedScenes;
22class IClientInstance;
24class KeyboardManager;
25class LayoutManager;
27class RectangleArea;
28class ScreenContext;
30class ScreenView;
31class TaskGroup;
34class VisualTree;
38struct ScreenSizeData;
40// clang-format on
41
42class UIScene : public ::BaseScreen {
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClientInstance;
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScreenView>> mScreenView;
48 ::ll::TypedStorage<8, 64, ::std::function<void()>> mOnInitializedCallback;
49 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AbstractSceneProxy>> mProxy;
50 // NOLINTEND
51
52public:
53 // prevent constructor by default
54 UIScene();
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ~UIScene() /*override*/;
60
61 virtual bool isGamepadCursorEnabled() const /*override*/;
62
63 virtual bool isGamepadDeflectionModeEnabled() const /*override*/;
64
65 virtual ::glm::vec2 const& getGamepadCursorPosition() const /*override*/;
66
67 virtual ::std::vector<::RectangleArea> getInputAreas() const /*override*/;
68
69 virtual void cleanInputComponents() /*override*/;
70
71 virtual void onCreation() /*override*/;
72
73 virtual void onLeave() /*override*/;
74
75 virtual bool canBePushed() const /*override*/;
76
77 virtual bool canBePopped() const /*override*/;
78
79 virtual bool canBeTransitioned() const /*override*/;
80
81 virtual void
82 onScreenExit(bool isPopping, bool doScreenTransitions, ::std::shared_ptr<::AbstractScene> pushedScene) /*override*/;
83
84 virtual void onScreenEntrance(bool isRevisiting, bool doScreenTransitions) /*override*/;
85
86 virtual bool isEntering() const /*override*/;
87
88 virtual bool isExiting() const /*override*/;
89
90 virtual void schedulePop() /*override*/;
91
92 virtual bool isTerminating() const /*override*/;
93
94 virtual bool loadScreenImmediately() const /*override*/;
95
96 virtual ::std::weak_ptr<::AbstractSceneProxy> getProxy() /*override*/;
97
98 virtual void setScreenState(
99 ::std::vector<::std::pair<::std::string_view, ::std::string_view>> const& routeQueryParameters
100 ) /*override*/;
101
102 virtual ::RectangleArea getAreaOfControlByName(::std::string const& controlName) const /*override*/;
103
104 virtual void init(::ScreenSizeData const& screenSizeData) /*override*/;
105
106 virtual void onSetKeyboardHeight(float keyboardHeight) /*override*/;
107
108 virtual void onFocusLost() /*override*/;
109
110 virtual void onInternetUpdate() /*override*/;
111
112 virtual bool renderGameBehind() const /*override*/;
113
114 virtual bool closeOnPlayerHurt() const /*override*/;
115
116 virtual bool useCustomPocketToast() const /*override*/;
117
118 virtual void setSize(::ScreenSizeData const& screenSizeData) /*override*/;
119
120 virtual void handleButtonPress(uint buttonId, ::FocusImpact focusImpact) /*override*/;
121
122 virtual void handleButtonRelease(uint buttonId, ::FocusImpact focusImpact) /*override*/;
123
124 virtual bool handlePointerLocation(
125 ::PointerLocationEventData const& pointerLocationData,
126 ::FocusImpact focusImpact
127 ) /*override*/;
128
129 virtual void handlePointerPressed(bool pressed) /*override*/;
130
131 virtual void handleLicenseChanged() /*override*/;
132
133 virtual void terminate() /*override*/;
134
135 virtual void onFocusGained() /*override*/;
136
137 virtual void onGameEventNotification(::ui::GameEventNotification notification) /*override*/;
138
139 virtual void reload() /*override*/;
140
141 virtual void leaveScreen() /*override*/;
142
143 virtual void preFrameTick() /*override*/;
144
145 virtual void frameUpdate(::MinecraftUIFrameUpdateContext& frameUpdateContext) /*override*/;
146
147 virtual void render(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj) /*override*/;
148
149 virtual void applyInput(float a) /*override*/;
150
151 virtual void handleInputModeChanged(::InputMode inputMode) /*override*/;
152
153 virtual void
154 handleRawInputEvent(int id, ::RawInputType keyType, ::ButtonState state, bool allowRemapping) /*override*/;
155
156 virtual void handleDirection(::DirectionId directionId, float x, float y, ::FocusImpact focusImpact) /*override*/;
157
158 virtual void handleTextChar(::std::string const& inputUtf8, ::FocusImpact focusImpact) /*override*/;
159
160 virtual void
161 handleTouchPadTouch(::TouchPadTouchEventData const& touchEventData, ::FocusImpact focusImpact) /*override*/;
162
163 virtual void setTextboxText(::std::string const& text, ::TextboxTextUpdateReason reason) /*override*/;
164
165 virtual void onKeyboardDismissed() /*override*/;
166
167 virtual bool absorbsInput() const /*override*/;
168
169 virtual bool screenIsNotFlushable() const /*override*/;
170
171 virtual bool alwaysAcceptsInput() const /*override*/;
172
173 virtual bool isShowingMenu() const /*override*/;
174
175 virtual bool isModal() const /*override*/;
176
177 virtual bool shouldStealMouse() const /*override*/;
178
179 virtual bool screenDrawsLast() const /*override*/;
180
181 virtual bool shouldBeSkippedInAutomation() const /*override*/;
182
183 virtual int getWidth() /*override*/;
184
185 virtual int getHeight() /*override*/;
186
187 virtual bool renderOnlyWhenTopMost() const /*override*/;
188
189 virtual bool lowFreqRendering() const /*override*/;
190
191 virtual bool ignoreAsTop() const /*override*/;
192
193 virtual ::ui::SceneType getSceneType() const /*override*/;
194
195 virtual ::std::string getRawScreenName() const /*override*/;
196
197 virtual ::std::string getScreenName() const /*override*/;
198
199 virtual bool equalsScreenName(::std::string_view comparison) const /*override*/;
200
201 virtual bool containsScreenNameSubstring(::std::string_view substring) const /*override*/;
202
203 virtual bool equalsRawScreenName(::std::string_view comparison) const /*override*/;
204
205 virtual ::std::string getRoute() const /*override*/;
206
207 virtual ::std::string getScreenTelemetryName() const /*override*/;
208
209 virtual bool getShouldSendEvents() /*override*/;
210
211 virtual void setShouldSendEvents(bool shouldSendEvents) /*override*/;
212
213 virtual void addEventProperties(::std::unordered_map<::std::string, ::std::string>& eventProperties) const
214 /*override*/;
215
216 virtual int getScreenVersion() const /*override*/;
217
218 virtual void onDelete(::CachedScenes& cache, ::TaskGroup& taskGroup) /*override*/;
219 // NOLINTEND
220
221public:
222 // member functions
223 // NOLINTBEGIN
224 MCNAPI UIScene(
225 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client,
226 ::KeyboardManager& keyboardManager,
227 ::std::shared_ptr<::ScreenController> controller,
228 ::std::unique_ptr<::VisualTree> visualTree,
229 ::std::shared_ptr<::UIControlFactory> controlFactory,
230 ::UIMeasureStrategy& measureStrategy,
231 ::std::unique_ptr<::LayoutManager> layoutManager,
232 ::GamepadCursorData gamepadCursorData,
233 ::std::weak_ptr<::ITTSEventManager> ttsEventManager
234 );
235
236 MCNAPI void setInitializedCallback(::std::function<void()> initializedCallback);
237 // NOLINTEND
238
239public:
240 // constructor thunks
241 // NOLINTBEGIN
242 MCNAPI void* $ctor(
243 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client,
244 ::KeyboardManager& keyboardManager,
245 ::std::shared_ptr<::ScreenController> controller,
246 ::std::unique_ptr<::VisualTree> visualTree,
247 ::std::shared_ptr<::UIControlFactory> controlFactory,
248 ::UIMeasureStrategy& measureStrategy,
249 ::std::unique_ptr<::LayoutManager> layoutManager,
250 ::GamepadCursorData gamepadCursorData,
251 ::std::weak_ptr<::ITTSEventManager> ttsEventManager
252 );
253 // NOLINTEND
254
255public:
256 // destructor thunk
257 // NOLINTBEGIN
258 MCNAPI void $dtor();
259 // NOLINTEND
260
261public:
262 // virtual function thunks
263 // NOLINTBEGIN
264 MCNAPI bool $isGamepadCursorEnabled() const;
265
267
268 MCNAPI ::glm::vec2 const& $getGamepadCursorPosition() const;
269
270 MCNAPI ::std::vector<::RectangleArea> $getInputAreas() const;
271
273
274 MCNAPI void $onCreation();
275
276 MCNAPI void $onLeave();
277
278 MCNAPI bool $canBePushed() const;
279
280 MCNAPI bool $canBePopped() const;
281
282 MCNAPI bool $canBeTransitioned() const;
283
284 MCAPI void $onScreenExit(bool isPopping, bool doScreenTransitions, ::std::shared_ptr<::AbstractScene> pushedScene);
285
286 MCAPI void $onScreenEntrance(bool isRevisiting, bool doScreenTransitions);
287
288 MCNAPI bool $isEntering() const;
289
290 MCNAPI bool $isExiting() const;
291
292 MCNAPI void $schedulePop();
293
294 MCNAPI bool $isTerminating() const;
295
296 MCNAPI bool $loadScreenImmediately() const;
297
298 MCNAPI ::std::weak_ptr<::AbstractSceneProxy> $getProxy();
299
300 MCNAPI void
301 $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const& routeQueryParameters);
302
303 MCNAPI ::RectangleArea $getAreaOfControlByName(::std::string const& controlName) const;
304
305 MCNAPI void $init(::ScreenSizeData const& screenSizeData);
306
307 MCNAPI void $onSetKeyboardHeight(float keyboardHeight);
308
309 MCAPI void $onFocusLost();
310
311 MCNAPI void $onInternetUpdate();
312
313 MCAPI bool $renderGameBehind() const;
314
315 MCAPI bool $closeOnPlayerHurt() const;
316
317 MCNAPI bool $useCustomPocketToast() const;
318
319 MCNAPI void $setSize(::ScreenSizeData const& screenSizeData);
320
321 MCNAPI void $handleButtonPress(uint buttonId, ::FocusImpact focusImpact);
322
323 MCNAPI void $handleButtonRelease(uint buttonId, ::FocusImpact focusImpact);
324
325 MCNAPI bool
326 $handlePointerLocation(::PointerLocationEventData const& pointerLocationData, ::FocusImpact focusImpact);
327
328 MCNAPI void $handlePointerPressed(bool pressed);
329
331
332 MCNAPI void $terminate();
333
334 MCNAPI void $onFocusGained();
335
336 MCNAPI void $onGameEventNotification(::ui::GameEventNotification notification);
337
338 MCNAPI void $reload();
339
340 MCNAPI void $leaveScreen();
341
342 MCNAPI void $preFrameTick();
343
344 MCNAPI void $frameUpdate(::MinecraftUIFrameUpdateContext& frameUpdateContext);
345
346 MCAPI void $render(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj);
347
348 MCNAPI void $applyInput(float a);
349
350 MCNAPI void $handleInputModeChanged(::InputMode inputMode);
351
352 MCNAPI void $handleRawInputEvent(int id, ::RawInputType keyType, ::ButtonState state, bool allowRemapping);
353
354 MCNAPI void $handleDirection(::DirectionId directionId, float x, float y, ::FocusImpact focusImpact);
355
356 MCAPI void $handleTextChar(::std::string const& inputUtf8, ::FocusImpact focusImpact);
357
358 MCNAPI void $handleTouchPadTouch(::TouchPadTouchEventData const& touchEventData, ::FocusImpact focusImpact);
359
360 MCNAPI void $setTextboxText(::std::string const& text, ::TextboxTextUpdateReason reason);
361
362 MCNAPI void $onKeyboardDismissed();
363
364 MCNAPI bool $absorbsInput() const;
365
366 MCNAPI bool $screenIsNotFlushable() const;
367
368 MCNAPI bool $alwaysAcceptsInput() const;
369
370 MCNAPI bool $isShowingMenu() const;
371
372 MCNAPI bool $isModal() const;
373
374 MCNAPI bool $shouldStealMouse() const;
375
376 MCNAPI bool $screenDrawsLast() const;
377
378 MCNAPI bool $shouldBeSkippedInAutomation() const;
379
380 MCNAPI int $getWidth();
381
382 MCNAPI int $getHeight();
383
384 MCNAPI bool $renderOnlyWhenTopMost() const;
385
386 MCNAPI bool $lowFreqRendering() const;
387
388 MCNAPI bool $ignoreAsTop() const;
389
390 MCNAPI ::ui::SceneType $getSceneType() const;
391
392 MCNAPI ::std::string $getRawScreenName() const;
393
394 MCNAPI ::std::string $getScreenName() const;
395
396 MCNAPI bool $equalsScreenName(::std::string_view comparison) const;
397
398 MCNAPI bool $containsScreenNameSubstring(::std::string_view substring) const;
399
400 MCNAPI bool $equalsRawScreenName(::std::string_view comparison) const;
401
402 MCNAPI ::std::string $getRoute() const;
403
404 MCNAPI ::std::string $getScreenTelemetryName() const;
405
406 MCNAPI bool $getShouldSendEvents();
407
408 MCNAPI void $setShouldSendEvents(bool shouldSendEvents);
409
410 MCNAPI void $addEventProperties(::std::unordered_map<::std::string, ::std::string>& eventProperties) const;
411
412 MCNAPI int $getScreenVersion() const;
413
414 MCNAPI void $onDelete(::CachedScenes& cache, ::TaskGroup& taskGroup);
415 // NOLINTEND
416};
Definition AbstractSceneProxy.h:5
Definition AbstractScene.h:5
Definition BaseScreen.h:5
Definition CachedScenes.h:5
Definition IClientInstance.h:5
Definition ITTSEventManager.h:5
Definition KeyboardManager.h:5
Definition LayoutManager.h:5
Definition MinecraftUIFrameUpdateContext.h:5
Definition RectangleArea.h:5
Definition ScreenContext.h:5
Definition ScreenController.h:5
Definition ScreenView.h:5
Definition TaskGroup.h:85
Definition UIControlFactory.h:5
Definition UIMeasureStrategy.h:5
Definition UIScene.h:5
MCAPI void $schedulePop()
MCAPI bool $shouldBeSkippedInAutomation() const
MCAPI void $onInternetUpdate()
MCAPI::RectangleArea $getAreaOfControlByName(::std::string const &controlName) const
MCAPI int $getWidth()
MCAPI::std::string $getScreenName() const
MCAPI void $handleInputModeChanged(::InputMode inputMode)
MCAPI void $handleButtonPress(uint buttonId, ::FocusImpact focusImpact)
MCAPI bool $isGamepadDeflectionModeEnabled() const
MCAPI::std::string $getRawScreenName() const
MCAPI bool $loadScreenImmediately() const
MCAPI void $cleanInputComponents()
MCAPI void $onFocusGained()
MCAPI bool $canBePopped() const
MCAPI bool $shouldStealMouse() const
MCAPI void $leaveScreen()
MCAPI void $handleRawInputEvent(int id, ::RawInputType keyType, ::ButtonState state, bool allowRemapping)
MCAPI bool $canBeTransitioned() const
MCAPI void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view > > const &routeQueryParameters)
MCAPI bool $renderOnlyWhenTopMost() const
MCAPI void $onDelete(::CachedScenes &cache, ::TaskGroup &taskGroup)
MCAPI bool $handlePointerLocation(::PointerLocationEventData const &pointerLocationData, ::FocusImpact focusImpact)
MCAPI bool $equalsRawScreenName(::std::string_view comparison) const
MCAPI void setInitializedCallback(::std::function< void()> initializedCallback)
MCAPI void $setShouldSendEvents(bool shouldSendEvents)
MCAPI void $dtor()
MCAPI bool $alwaysAcceptsInput() const
MCAPI void $onSetKeyboardHeight(float keyboardHeight)
MCAPI::std::string $getRoute() const
MCAPI bool $ignoreAsTop() const
MCAPI bool $canBePushed() const
MCAPI::ui::SceneType $getSceneType() const
MCAPI void $handleButtonRelease(uint buttonId, ::FocusImpact focusImpact)
MCAPI bool $isGamepadCursorEnabled() const
MCAPI void $terminate()
MCAPI int $getHeight()
MCAPI void $onKeyboardDismissed()
MCAPI bool $equalsScreenName(::std::string_view comparison) const
MCAPI ::std::weak_ptr<::AbstractSceneProxy > $getProxy()
MCAPI bool $absorbsInput() const
MCAPI void $onGameEventNotification(::ui::GameEventNotification notification)
MCAPI bool $isTerminating() const
MCAPI void $onLeave()
MCAPI bool $getShouldSendEvents()
MCAPI bool $screenDrawsLast() const
MCAPI bool $containsScreenNameSubstring(::std::string_view substring) const
MCAPI bool $useCustomPocketToast() const
MCAPI void $reload()
MCAPI bool $isModal() const
MCAPI::glm::vec2 const & $getGamepadCursorPosition() const
MCAPI bool $isEntering() const
MCAPI bool $screenIsNotFlushable() const
MCAPI void $frameUpdate(::MinecraftUIFrameUpdateContext &frameUpdateContext)
MCAPI void $handleLicenseChanged()
MCAPI::std::string $getScreenTelemetryName() const
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::IClientInstance > const &client, ::KeyboardManager &keyboardManager, ::std::shared_ptr<::ScreenController > controller, ::std::unique_ptr<::VisualTree > visualTree, ::std::shared_ptr<::UIControlFactory > controlFactory, ::UIMeasureStrategy &measureStrategy, ::std::unique_ptr<::LayoutManager > layoutManager, ::GamepadCursorData gamepadCursorData, ::std::weak_ptr<::ITTSEventManager > ttsEventManager)
MCAPI void $handleTouchPadTouch(::TouchPadTouchEventData const &touchEventData, ::FocusImpact focusImpact)
MCAPI void $setTextboxText(::std::string const &text, ::TextboxTextUpdateReason reason)
MCAPI void $init(::ScreenSizeData const &screenSizeData)
MCAPI bool $lowFreqRendering() const
MCAPI bool $isExiting() const
MCAPI void $handleDirection(::DirectionId directionId, float x, float y, ::FocusImpact focusImpact)
MCAPI ::std::vector<::RectangleArea > $getInputAreas() const
MCAPI void $setSize(::ScreenSizeData const &screenSizeData)
MCAPI void $handlePointerPressed(bool pressed)
MCAPI void $applyInput(float a)
MCAPI void $onCreation()
MCAPI void $preFrameTick()
MCAPI void $addEventProperties(::std::unordered_map<::std::string, ::std::string > &eventProperties) const
MCAPI bool $isShowingMenu() const
MCAPI int $getScreenVersion() const
Definition VisualTree.h:5
STL namespace.
Definition FrameRenderObject.h:5
Definition GamepadCursorData.h:5
Definition PointerLocationEventData.h:5
Definition ScreenSizeData.h:5
Definition TouchPadTouchEventData.h:5