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"
37 ::ll::TypedStorage<4, 4, uint> mSceneId;
43 virtual ~AbstractScene();
45 virtual void init(::ScreenSizeData
const& screenSizeData) = 0;
47 virtual void setSize(::ScreenSizeData
const& screenSizeData) = 0;
49 virtual void onSetKeyboardHeight(
float keyboardHeight) = 0;
51 virtual void onInternetUpdate() = 0;
53 virtual ::std::vector<::RectangleArea> getInputAreas()
const = 0;
55 virtual void onFocusGained() = 0;
57 virtual void onFocusLost() = 0;
59 virtual void terminate() = 0;
61 virtual void onCreation() = 0;
63 virtual void onLeave() = 0;
65 virtual void onGameEventNotification(::ui::GameEventNotification notification) = 0;
67 virtual void leaveScreen() = 0;
69 virtual void preFrameTick() = 0;
71 virtual void tick(
int nTick,
int maxTick) = 0;
73 virtual void applyInput(
float a) = 0;
75 virtual void frameUpdate(::MinecraftUIFrameUpdateContext& frameUpdateContext) = 0;
77 virtual void preRenderUpdate(::ScreenContext& screenContext) = 0;
79 virtual void prepareFrame(::ScreenContext& screenContext) = 0;
81 virtual void render(::ScreenContext& screenContext, ::FrameRenderObject
const& renderObj) = 0;
83 virtual void postRenderUpdate(::ScreenContext& screenContext) = 0;
85 virtual void handleInputModeChanged(::InputMode inputMode) = 0;
87 virtual void handleButtonPress(uint buttonId, ::FocusImpact focusImpact) = 0;
89 virtual void handleButtonRelease(uint buttonId, ::FocusImpact focusImpact) = 0;
91 virtual void handleRawInputEvent(
int id, ::RawInputType keyType, ::ButtonState state,
bool allowRemapping) = 0;
94 handlePointerLocation(::PointerLocationEventData
const& pointerLocationData, ::FocusImpact focusImpact) = 0;
96 virtual void handlePointerPressed(
bool pressed) = 0;
98 virtual void handleDirection(::DirectionId directionId,
float x,
float y, ::FocusImpact focusImpact) = 0;
100 virtual void handleTextChar(::std::string
const& inputUtf8, ::FocusImpact focusImpact) = 0;
102 virtual void handleCaretLocation(
int caretLocation, ::FocusImpact focusImpact) = 0;
104 virtual void handleTouchPadTouch(::TouchPadTouchEventData
const& touchEventData, ::FocusImpact focusImpact) = 0;
106 virtual void setTextboxText(::std::string
const& text, ::TextboxTextUpdateReason reason) = 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& controlName)
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 comparison)
const = 0;
160 virtual bool containsScreenNameSubstring(::std::string_view substring)
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>& eventProperties)
const = 0;
170 virtual int getScreenVersion()
const = 0;
172 virtual void processBufferedTextCharEvents(::std::vector<::TextCharEventData>
const& bufferedEvents) = 0;
174 virtual bool getShouldSendEvents() = 0;
176 virtual void setShouldSendEvents(
bool sendEvents) = 0;
178 virtual bool getWantsTextOnly() = 0;
180 virtual void setWantsTextOnly(
bool textOnly) = 0;
182 virtual void onDelete(::CachedScenes& cache, ::TaskGroup& 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;
201 onScreenExit(
bool isPopping,
bool doScreenTransitions, ::std::shared_ptr<::AbstractScene> pushedScene) = 0;
203 virtual void onScreenEntrance(
bool isRevisiting,
bool doScreenTransitions) = 0;
205 virtual bool isEntering()
const = 0;
207 virtual bool isExiting()
const = 0;
209 virtual void schedulePop() = 0;
211 virtual bool isTerminating()
const = 0;
213 virtual bool loadScreenImmediately()
const = 0;
215 virtual bool forceUpdateActiveSceneStackWhenPushed()
const = 0;
217 virtual bool hasFinishedLoading()
const = 0;
219 virtual void sendScreenEvent(::std::string
const& eventName, ::std::string
const& eventData) = 0;
222 setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>>
const& routeQueryParameters) = 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 MinecraftUIFrameUpdateContext.h:5
Definition ISceneDataProvider.h:7
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