3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/GameEventNotification.h"
7#include "mc/client/gui/SceneType.h"
8#include "mc/client/renderer/screen/EyeRenderingModeBit.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"
38 ::ll::TypedStorage<4, 4, uint> mSceneId;
44 virtual ~AbstractScene();
46 virtual void init(::ScreenSizeData
const&) = 0;
48 virtual void setSize(::ScreenSizeData
const&) = 0;
50 virtual void onSetKeyboardHeight(
float) = 0;
52 virtual void onInternetUpdate() = 0;
54 virtual ::std::vector<::RectangleArea> getInputAreas()
const = 0;
56 virtual void onFocusGained() = 0;
58 virtual void onFocusLost() = 0;
60 virtual void terminate() = 0;
62 virtual void onCreation() = 0;
64 virtual void onLeave() = 0;
66 virtual void onGameEventNotification(::ui::GameEventNotification) = 0;
68 virtual void leaveScreen() = 0;
70 virtual void preFrameTick() = 0;
72 virtual void tick(
int,
int) = 0;
74 virtual void applyInput(
float) = 0;
76 virtual void frameUpdate(::MinecraftUIFrameUpdateContext&) = 0;
78 virtual void preRenderUpdate(::ScreenContext&) = 0;
80 virtual void prepareFrame(::ScreenContext&) = 0;
82 virtual void render(::ScreenContext&, ::FrameRenderObject
const&) = 0;
84 virtual void postRenderUpdate(::ScreenContext&) = 0;
86 virtual void handleInputModeChanged(::InputMode) = 0;
88 virtual void handleButtonPress(uint, ::FocusImpact) = 0;
90 virtual void handleButtonRelease(uint, ::FocusImpact) = 0;
92 virtual void handleRawInputEvent(
int, ::RawInputType, ::ButtonState,
bool) = 0;
94 virtual bool handlePointerLocation(::PointerLocationEventData
const&, ::FocusImpact) = 0;
96 virtual void handlePointerPressed(
bool) = 0;
98 virtual void handleDirection(::DirectionId,
float,
float, ::FocusImpact) = 0;
100 virtual void handleTextChar(::std::string
const&, ::FocusImpact) = 0;
102 virtual void handleCaretLocation(
int, ::FocusImpact) = 0;
104 virtual void handleTouchPadTouch(::TouchPadTouchEventData
const&, ::FocusImpact) = 0;
106 virtual void setTextboxText(::std::string
const&, ::TextboxTextUpdateReason) = 0;
108 virtual void onKeyboardDismissed() = 0;
110 virtual void handleLicenseChanged() = 0;
112 virtual bool renderGameBehind()
const = 0;
114 virtual bool absorbsInput()
const = 0;
116 virtual bool closeOnPlayerHurt()
const = 0;
118 virtual bool useCustomPocketToast()
const = 0;
120 virtual bool isModal()
const = 0;
122 virtual bool isEditorMode()
const = 0;
124 virtual bool isShowingMenu()
const = 0;
126 virtual bool shouldStealMouse()
const = 0;
128 virtual bool screenIsNotFlushable()
const = 0;
130 virtual bool alwaysAcceptsInput()
const = 0;
132 virtual bool screenDrawsLast()
const = 0;
134 virtual bool isPlayScreen()
const = 0;
136 virtual bool renderOnlyWhenTopMost()
const = 0;
138 virtual bool lowFreqRendering()
const = 0;
140 virtual bool ignoreAsTop()
const = 0;
142 virtual bool shouldBeSkippedInAutomation()
const = 0;
144 virtual int getWidth() = 0;
146 virtual int getHeight() = 0;
148 virtual void reload() = 0;
150 virtual ::RectangleArea getAreaOfControlByName(::std::string
const&)
const = 0;
152 virtual ::EyeRenderingModeBit getEyeRenderingMode()
const = 0;
154 virtual ::ui::SceneType getSceneType()
const = 0;
156 virtual ::std::string getScreenName()
const = 0;
158 virtual bool equalsScreenName(::std::string_view)
const = 0;
160 virtual bool containsScreenNameSubstring(::std::string_view)
const = 0;
162 virtual ::std::string getRawScreenName()
const = 0;
164 virtual ::std::string getRoute()
const = 0;
166 virtual ::std::string getScreenTelemetryName()
const = 0;
168 virtual void addEventProperties(::std::unordered_map<::std::string, ::std::string>&)
const = 0;
170 virtual int getScreenVersion()
const = 0;
172 virtual void processBufferedTextCharEvents(::std::vector<::TextCharEventData>
const&) = 0;
174 virtual bool getShouldSendEvents() = 0;
176 virtual void setShouldSendEvents(
bool) = 0;
178 virtual bool getWantsTextOnly() = 0;
180 virtual void setWantsTextOnly(
bool) = 0;
182 virtual void onDelete(::CachedScenes&, ::TaskGroup&) = 0;
184 virtual bool isGamepadCursorEnabled()
const = 0;
186 virtual bool isGamepadDeflectionModeEnabled()
const = 0;
188 virtual ::glm::vec2
const& getGamepadCursorPosition()
const = 0;
190 virtual void cleanInputComponents() = 0;
192 virtual ::std::weak_ptr<::AbstractSceneProxy> getProxy() = 0;
194 virtual bool canBePushed()
const = 0;
196 virtual bool canBePopped()
const = 0;
198 virtual bool canBeTransitioned()
const = 0;
200 virtual void onScreenExit(
bool,
bool, ::std::shared_ptr<::AbstractScene>) = 0;
202 virtual void onScreenEntrance(
bool,
bool) = 0;
204 virtual bool isEntering()
const = 0;
206 virtual bool isExiting()
const = 0;
208 virtual void schedulePop() = 0;
210 virtual bool isTerminating()
const = 0;
212 virtual bool loadScreenImmediately()
const = 0;
214 virtual bool forceUpdateActiveSceneStackWhenPushed()
const = 0;
216 virtual bool hasFinishedLoading()
const = 0;
218 virtual void sendScreenEvent(::std::string
const&, ::std::string
const&) = 0;
220 virtual void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>>
const&) = 0;
222 virtual void setDebugSettings(::OreUI::ViewDebugSettings
const&)
const = 0;
224 virtual ::Bedrock::NonOwnerPointer<::OreUI::Debug::ISceneDataProvider const> getDebugDataProvider()
const = 0;
Definition AbstractSceneProxy.h:5
Definition AbstractScene.h:5
static MCAPI void ** $vftable()
Definition CachedScenes.h:5
Definition ISceneDataProvider.h:7
Definition RectangleArea.h:5
Definition ScreenContext.h:5
Definition TaskGroup.h:53
Definition FrameRenderObject.h:5
Definition MinecraftUIFrameUpdateContext.h:5
Definition ViewDebugSettings.h:7
Definition PointerLocationEventData.h:8
Definition ScreenSizeData.h:5
Definition TextCharEventData.h:5
Definition TouchPadTouchEventData.h:5