LeviLamina
Loading...
Searching...
No Matches
Scene.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/oreui/SceneState.h"
9#include "mc/client/gui/oreui/interface/IScene.h"
10#include "mc/client/gui/oreui/interface/RouteMode.h"
11#include "mc/client/gui/oreui/interface/ViewId.h"
12#include "mc/client/gui/screens/AbstractScene.h"
13#include "mc/client/renderer/screen/EyeRenderingModeBit.h"
14#include "mc/deps/core/utility/NonOwnerPointer.h"
15#include "mc/deps/core/utility/pub_sub/Subscription.h"
16#include "mc/deps/input/InputMode.h"
17#include "mc/deps/input/TextboxTextUpdateReason.h"
18#include "mc/deps/input/enums/ButtonState.h"
19#include "mc/deps/input/enums/DirectionId.h"
20#include "mc/deps/input/enums/FocusImpact.h"
21#include "mc/deps/input/enums/RawInputType.h"
22
23// auto generated forward declare list
24// clang-format off
27class CachedScenes;
29class RectangleArea;
30class ScreenContext;
31class TaskGroup;
34struct ScreenSizeData;
37namespace OreUI { class IView; }
38namespace OreUI { class IViewProvider; }
39namespace OreUI { class RouteModeInputHandler; }
40namespace OreUI { class Router; }
41namespace OreUI { class RouterLocation; }
42namespace OreUI::Debug { class ISceneDataProvider; }
43// clang-format on
44
45namespace OreUI {
46
47class Scene : public ::AbstractScene, public ::OreUI::IScene {
48public:
49 // member variables
50 // NOLINTBEGIN
51 ::ll::TypedStorage<4, 4, ::OreUI::ViewId const> mViewId;
52 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::OreUI::IViewProvider>> mViewProvider;
53 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::OreUI::IView>> mView;
54 ::ll::TypedStorage<8, 64, ::std::function<void()>> mOnLoadFailedCallback;
55 ::ll::TypedStorage<8, 32, ::std::string> mCurrentRoute;
56 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::OreUI::RouteModeInputHandler>> mRouteModeInputHandler;
57 ::ll::TypedStorage<1, 1, ::OreUI::SceneState> mState;
58 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnRouteChangedSubscription;
59 ::ll::TypedStorage<4, 8, ::glm::vec2> mGamepadCursorPosition;
60 ::ll::TypedStorage<2, 2, short> mCurrentPointerPositionX;
61 ::ll::TypedStorage<2, 2, short> mCurrentPointerPositionY;
62 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::AbstractScreenSetupCleanupStrategy>> mScreenSetupCleanup;
63 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AbstractSceneProxy>> mProxy;
64 // NOLINTEND
65
66public:
67 // prevent constructor by default
68 Scene();
69
70public:
71 // virtual functions
72 // NOLINTBEGIN
73 virtual ~Scene() /*override*/;
74
75 virtual void onCreation() /*override*/;
76
77 virtual void init(::ScreenSizeData const&) /*override*/;
78
79 virtual void setSize(::ScreenSizeData const& screenSizeData) /*override*/;
80
81 virtual void onSetKeyboardHeight(float) /*override*/;
82
83 virtual ::std::vector<::RectangleArea> getInputAreas() const /*override*/;
84
85 virtual void onInternetUpdate() /*override*/;
86
87 virtual void onFocusGained() /*override*/;
88
89 virtual void onFocusLost() /*override*/;
90
91 virtual void terminate() /*override*/;
92
93 virtual void onLeave() /*override*/;
94
95 virtual void onGameEventNotification(::ui::GameEventNotification) /*override*/;
96
97 virtual void leaveScreen() /*override*/;
98
99 virtual void preFrameTick() /*override*/;
100
101 virtual void tick(int, int) /*override*/;
102
103 virtual void frameUpdate(::MinecraftUIFrameUpdateContext&) /*override*/;
104
105 virtual void applyInput(float) /*override*/;
106
107 virtual void preRenderUpdate(::ScreenContext&) /*override*/;
108
109 virtual void prepareFrame(::ScreenContext&) /*override*/;
110
111 virtual void render(::ScreenContext& screenContext, ::FrameRenderObject const&) /*override*/;
112
113 virtual void postRenderUpdate(::ScreenContext&) /*override*/;
114
115 virtual void handleInputModeChanged(::InputMode) /*override*/;
116
117 virtual void handleButtonPress(uint, ::FocusImpact) /*override*/;
118
119 virtual void handleButtonRelease(uint, ::FocusImpact) /*override*/;
120
121 virtual void handleRawInputEvent(int, ::RawInputType, ::ButtonState, bool) /*override*/;
122
123 virtual bool handlePointerLocation(::PointerLocationEventData const&, ::FocusImpact) /*override*/;
124
125 virtual void handlePointerPressed(bool) /*override*/;
126
127 virtual void handleDirection(::DirectionId, float, float, ::FocusImpact) /*override*/;
128
129 virtual void handleTextChar(::std::string const&, ::FocusImpact) /*override*/;
130
131 virtual void handleCaretLocation(int, ::FocusImpact) /*override*/;
132
133 virtual void handleTouchPadTouch(::TouchPadTouchEventData const&, ::FocusImpact) /*override*/;
134
135 virtual void setTextboxText(::std::string const&, ::TextboxTextUpdateReason) /*override*/;
136
137 virtual void onKeyboardDismissed() /*override*/;
138
139 virtual void handleLicenseChanged() /*override*/;
140
141 virtual bool renderGameBehind() const /*override*/;
142
143 virtual bool absorbsInput() const /*override*/;
144
145 virtual bool closeOnPlayerHurt() const /*override*/;
146
147 virtual bool useCustomPocketToast() const /*override*/;
148
149 virtual bool isModal() const /*override*/;
150
151 virtual bool isEditorMode() const /*override*/;
152
153 virtual bool isShowingMenu() const /*override*/;
154
155 virtual bool shouldStealMouse() const /*override*/;
156
157 virtual bool screenIsNotFlushable() const /*override*/;
158
159 virtual bool alwaysAcceptsInput() const /*override*/;
160
161 virtual bool screenDrawsLast() const /*override*/;
162
163 virtual bool isPlayScreen() const /*override*/;
164
165 virtual bool renderOnlyWhenTopMost() const /*override*/;
166
167 virtual bool lowFreqRendering() const /*override*/;
168
169 virtual bool ignoreAsTop() const /*override*/;
170
171 virtual bool shouldBeSkippedInAutomation() const /*override*/;
172
173 virtual int getWidth() /*override*/;
174
175 virtual int getHeight() /*override*/;
176
177 virtual void reload() /*override*/;
178
179 virtual ::EyeRenderingModeBit getEyeRenderingMode() const /*override*/;
180
181 virtual ::ui::SceneType getSceneType() const /*override*/;
182
183 virtual ::std::string getScreenName() const /*override*/;
184
185 virtual bool equalsScreenName(::std::string_view comparison) const /*override*/;
186
187 virtual bool containsScreenNameSubstring(::std::string_view substring) const /*override*/;
188
189 virtual ::std::string getRawScreenName() const /*override*/;
190
191 virtual ::std::string getRoute() const /*override*/;
192
193 virtual ::std::string getScreenTelemetryName() const /*override*/;
194
195 virtual void addEventProperties(::std::unordered_map<::std::string, ::std::string>&) const /*override*/;
196
197 virtual int getScreenVersion() const /*override*/;
198
199 virtual void processBufferedTextCharEvents(::std::vector<::TextCharEventData> const&) /*override*/;
200
201 virtual bool getShouldSendEvents() /*override*/;
202
203 virtual void setShouldSendEvents(bool) /*override*/;
204
205 virtual bool getWantsTextOnly() /*override*/;
206
207 virtual void setWantsTextOnly(bool) /*override*/;
208
209 virtual void onDelete(::CachedScenes&, ::TaskGroup&) /*override*/;
210
211 virtual bool isGamepadCursorEnabled() const /*override*/;
212
213 virtual bool isGamepadDeflectionModeEnabled() const /*override*/;
214
215 virtual ::glm::vec2 const& getGamepadCursorPosition() const /*override*/;
216
217 virtual void cleanInputComponents() /*override*/;
218
219 virtual ::std::weak_ptr<::AbstractSceneProxy> getProxy() /*override*/;
220
221 virtual bool canBePushed() const /*override*/;
222
223 virtual bool canBePopped() const /*override*/;
224
225 virtual bool canBeTransitioned() const /*override*/;
226
227 virtual void onScreenExit(bool, bool, ::std::shared_ptr<::AbstractScene>) /*override*/;
228
229 virtual void onScreenEntrance(bool, bool) /*override*/;
230
231 virtual bool isEntering() const /*override*/;
232
233 virtual bool isExiting() const /*override*/;
234
235 virtual void schedulePop() /*override*/;
236
237 virtual bool isTerminating() const /*override*/;
238
239 virtual bool loadScreenImmediately() const /*override*/;
240
241 virtual bool forceUpdateActiveSceneStackWhenPushed() const /*override*/;
242
243 virtual ::RectangleArea getAreaOfControlByName(::std::string const&) const /*override*/;
244
245 virtual bool hasFinishedLoading() const /*override*/;
246
247 virtual void sendScreenEvent(::std::string const& eventName, ::std::string const& eventData) /*override*/;
248
249 virtual void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&) /*override*/;
250
251 virtual ::Bedrock::NonOwnerPointer<::OreUI::Debug::ISceneDataProvider const> getDebugDataProvider() const
252 /*override*/;
253
254 virtual void onLoadFailed(char const*, char const*) /*override*/;
255
256 virtual void onViewReused() /*override*/;
257
258 virtual void onReusedViewReleased() /*override*/;
259
260 virtual bool isInputEnabled() const /*override*/;
261 // NOLINTEND
262
263public:
264 // member functions
265 // NOLINTBEGIN
266 MCAPI Scene(
267 ::OreUI::ViewId viewId,
268 ::Bedrock::NotNullNonOwnerPtr<::OreUI::IViewProvider> viewProvider,
269 ::OreUI::Router& router,
270 ::OreUI::RouteMode routeMode,
271 ::std::function<void()> onLoadFailedCallback,
272 ::Bedrock::NotNullNonOwnerPtr<::OreUI::RouteModeInputHandler> routeModeInputHandler
273 );
274
275 MCAPI bool _isSameScene(::std::optional<::OreUI::RouterLocation> const& currentLocation) const;
276
277 MCAPI void _updateRouteAndRouteMode(
278 ::std::optional<::OreUI::RouterLocation> const& previousLocation,
279 ::std::optional<::OreUI::RouterLocation> const& currentLocation
280 );
281 // NOLINTEND
282
283public:
284 // constructor thunks
285 // NOLINTBEGIN
286 MCAPI void* $ctor(
287 ::OreUI::ViewId viewId,
288 ::Bedrock::NotNullNonOwnerPtr<::OreUI::IViewProvider> viewProvider,
289 ::OreUI::Router& router,
290 ::OreUI::RouteMode routeMode,
291 ::std::function<void()> onLoadFailedCallback,
292 ::Bedrock::NotNullNonOwnerPtr<::OreUI::RouteModeInputHandler> routeModeInputHandler
293 );
294 // NOLINTEND
295
296public:
297 // destructor thunk
298 // NOLINTBEGIN
299 MCAPI void $dtor();
300 // NOLINTEND
301
302public:
303 // virtual function thunks
304 // NOLINTBEGIN
305 MCFOLD void $onCreation();
306
307 MCFOLD void $init(::ScreenSizeData const&);
308
309 MCAPI void $setSize(::ScreenSizeData const& screenSizeData);
310
311 MCFOLD void $onSetKeyboardHeight(float);
312
313 MCFOLD ::std::vector<::RectangleArea> $getInputAreas() const;
314
315 MCFOLD void $onInternetUpdate();
316
317 MCFOLD void $onFocusGained();
318
319 MCAPI void $onFocusLost();
320
321 MCFOLD void $terminate();
322
323 MCFOLD void $onLeave();
324
325 MCFOLD void $onGameEventNotification(::ui::GameEventNotification);
326
327 MCFOLD void $leaveScreen();
328
329 MCFOLD void $preFrameTick();
330
331 MCFOLD void $tick(int, int);
332
333 MCFOLD void $frameUpdate(::MinecraftUIFrameUpdateContext&);
334
335 MCFOLD void $applyInput(float);
336
337 MCFOLD void $preRenderUpdate(::ScreenContext&);
338
339 MCFOLD void $prepareFrame(::ScreenContext&);
340
341 MCAPI void $render(::ScreenContext& screenContext, ::FrameRenderObject const&);
342
343 MCFOLD void $postRenderUpdate(::ScreenContext&);
344
345 MCFOLD void $handleInputModeChanged(::InputMode);
346
347 MCFOLD void $handleButtonPress(uint, ::FocusImpact);
348
349 MCFOLD void $handleButtonRelease(uint, ::FocusImpact);
350
351 MCFOLD void $handleRawInputEvent(int, ::RawInputType, ::ButtonState, bool);
352
353 MCFOLD bool $handlePointerLocation(::PointerLocationEventData const&, ::FocusImpact);
354
355 MCFOLD void $handlePointerPressed(bool);
356
357 MCFOLD void $handleDirection(::DirectionId, float, float, ::FocusImpact);
358
359 MCFOLD void $handleTextChar(::std::string const&, ::FocusImpact);
360
361 MCFOLD void $handleCaretLocation(int, ::FocusImpact);
362
363 MCFOLD void $handleTouchPadTouch(::TouchPadTouchEventData const&, ::FocusImpact);
364
365 MCFOLD void $setTextboxText(::std::string const&, ::TextboxTextUpdateReason);
366
367 MCFOLD void $onKeyboardDismissed();
368
369 MCFOLD void $handleLicenseChanged();
370
371 MCFOLD bool $renderGameBehind() const;
372
373 MCAPI bool $absorbsInput() const;
374
375 MCFOLD bool $closeOnPlayerHurt() const;
376
377 MCFOLD bool $useCustomPocketToast() const;
378
379 MCFOLD bool $isModal() const;
380
381 MCFOLD bool $isEditorMode() const;
382
383 MCAPI bool $isShowingMenu() const;
384
385 MCAPI bool $shouldStealMouse() const;
386
387 MCFOLD bool $screenIsNotFlushable() const;
388
389 MCFOLD bool $alwaysAcceptsInput() const;
390
391 MCFOLD bool $screenDrawsLast() const;
392
393 MCFOLD bool $isPlayScreen() const;
394
395 MCFOLD bool $renderOnlyWhenTopMost() const;
396
397 MCFOLD bool $lowFreqRendering() const;
398
399 MCAPI bool $ignoreAsTop() const;
400
401 MCFOLD bool $shouldBeSkippedInAutomation() const;
402
403 MCAPI int $getWidth();
404
405 MCAPI int $getHeight();
406
407 MCFOLD void $reload();
408
409 MCAPI ::EyeRenderingModeBit $getEyeRenderingMode() const;
410
411 MCFOLD ::ui::SceneType $getSceneType() const;
412
413 MCFOLD ::std::string $getScreenName() const;
414
415 MCAPI bool $equalsScreenName(::std::string_view comparison) const;
416
417 MCAPI bool $containsScreenNameSubstring(::std::string_view substring) const;
418
419 MCFOLD ::std::string $getRawScreenName() const;
420
421 MCFOLD ::std::string $getRoute() const;
422
423 MCFOLD ::std::string $getScreenTelemetryName() const;
424
425 MCFOLD void $addEventProperties(::std::unordered_map<::std::string, ::std::string>&) const;
426
427 MCFOLD int $getScreenVersion() const;
428
429 MCFOLD void $processBufferedTextCharEvents(::std::vector<::TextCharEventData> const&);
430
431 MCFOLD bool $getShouldSendEvents();
432
433 MCFOLD void $setShouldSendEvents(bool);
434
435 MCFOLD bool $getWantsTextOnly();
436
437 MCFOLD void $setWantsTextOnly(bool);
438
439 MCFOLD void $onDelete(::CachedScenes&, ::TaskGroup&);
440
441 MCFOLD bool $isGamepadCursorEnabled() const;
442
443 MCFOLD bool $isGamepadDeflectionModeEnabled() const;
444
445 MCFOLD ::glm::vec2 const& $getGamepadCursorPosition() const;
446
447 MCFOLD void $cleanInputComponents();
448
449 MCAPI ::std::weak_ptr<::AbstractSceneProxy> $getProxy();
450
451 MCFOLD bool $canBePushed() const;
452
453 MCFOLD bool $canBePopped() const;
454
455 MCAPI bool $canBeTransitioned() const;
456
457 MCAPI void $onScreenExit(bool, bool, ::std::shared_ptr<::AbstractScene>);
458
459 MCAPI void $onScreenEntrance(bool, bool);
460
461 MCFOLD bool $isEntering() const;
462
463 MCAPI bool $isExiting() const;
464
465 MCFOLD void $schedulePop();
466
467 MCFOLD bool $isTerminating() const;
468
469 MCFOLD bool $loadScreenImmediately() const;
470
471 MCFOLD bool $forceUpdateActiveSceneStackWhenPushed() const;
472
473 MCFOLD ::RectangleArea $getAreaOfControlByName(::std::string const&) const;
474
475 MCAPI bool $hasFinishedLoading() const;
476
477 MCAPI void $sendScreenEvent(::std::string const& eventName, ::std::string const& eventData);
478
479 MCFOLD void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&);
480
481 MCFOLD ::Bedrock::NonOwnerPointer<::OreUI::Debug::ISceneDataProvider const> $getDebugDataProvider() const;
482
483 MCAPI void $onLoadFailed(char const*, char const*);
484
485 MCAPI void $onViewReused();
486
487 MCAPI void $onReusedViewReleased();
488
489 MCAPI bool $isInputEnabled() const;
490 // NOLINTEND
491
492public:
493 // vftables
494 // NOLINTBEGIN
495 MCNAPI static void** $vftableForAbstractScene();
496
497 MCNAPI static void** $vftableForIScene();
498 // NOLINTEND
499};
500
501} // namespace OreUI
Definition AbstractSceneProxy.h:5
Definition AbstractScreenSetupCleanupStrategy.h:5
Definition CachedScenes.h:5
Definition MinecraftUIFrameUpdateContext.h:5
Definition ISceneDataProvider.h:7
Definition IViewProvider.h:7
Definition IView.h:7
Definition RouteModeInputHandler.h:7
Definition RouterLocation.h:7
Definition Router.h:7
Definition Scene.h:7
static MCAPI void ** $vftableForIScene()
static MCAPI void ** $vftableForAbstractScene()
Definition RectangleArea.h:5
Definition ScreenContext.h:5
Definition TaskGroup.h:57
Definition FrameRenderObject.h:5
Definition PointerLocationEventData.h:8
Definition ScreenSizeData.h:5
Definition TextCharEventData.h:5
Definition TouchPadTouchEventData.h:5