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