3#include "mc/_HeaderOutputPredefine.h"
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"
36namespace OreUI {
class IView; }
45class Scene :
public ::AbstractScene,
public ::OreUI::IScene {
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>>>
62 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AbstractSceneProxy>> mProxy;
68 virtual ~Scene() =
default;
70 virtual void onCreation() ;
72 virtual void init(::ScreenSizeData
const&) ;
74 virtual void setSize(::ScreenSizeData
const& screenSizeData) ;
76 virtual void onSetKeyboardHeight(
float) ;
78 virtual ::std::vector<::RectangleArea> getInputAreas() const ;
80 virtual
void onInternetUpdate() ;
82 virtual
void onFocusGained() ;
84 virtual
void onFocusLost() ;
86 virtual
void terminate() ;
88 virtual
void onLeave() ;
90 virtual
void onGameEventNotification(::ui::GameEventNotification) ;
92 virtual
void leaveScreen() ;
94 virtual
void preFrameTick() ;
96 virtual
void tick(
int,
int) ;
98 virtual
void frameUpdate(::MinecraftUIFrameUpdateContext&) ;
100 virtual
void applyInput(
float) ;
102 virtual
void preRenderUpdate(::ScreenContext&) ;
104 virtual
void prepareFrame(::ScreenContext&) ;
106 virtual
void render(::ScreenContext& screenContext, ::FrameRenderObject const&) ;
108 virtual
void postRenderUpdate(::ScreenContext&) ;
110 virtual
void handleInputModeChanged(::InputMode) ;
112 virtual
void handleButtonPress(uint, ::FocusImpact) ;
114 virtual
void handleButtonRelease(uint, ::FocusImpact) ;
116 virtual
void handleRawInputEvent(
int, ::RawInputType, ::ButtonState,
bool) ;
118 virtual
bool handlePointerLocation(::PointerLocationEventData const&, ::FocusImpact) ;
120 virtual
void handlePointerPressed(
bool) ;
122 virtual
void handleDirection(::DirectionId,
float,
float, ::FocusImpact) ;
124 virtual
void handleTextChar(::std::
string const&, ::FocusImpact) ;
126 virtual
void handleTouchPadTouch(::TouchPadTouchEventData const&, ::FocusImpact) ;
128 virtual
void setTextboxText(::std::
string const&, ::TextboxTextUpdateReason) ;
130 virtual
void onKeyboardDismissed() ;
132 virtual
void handleLicenseChanged() ;
134 virtual
bool renderGameBehind() const ;
136 virtual
bool absorbsInput() const ;
138 virtual
bool closeOnPlayerHurt() const ;
140 virtual
bool useCustomPocketToast() const ;
142 virtual
bool isModal() const ;
144 virtual
bool isEditorMode() const ;
146 virtual
bool isShowingMenu() const ;
148 virtual
bool shouldStealMouse() const ;
150 virtual
bool screenIsNotFlushable() const ;
152 virtual
bool alwaysAcceptsInput() const ;
154 virtual
bool screenDrawsLast() const ;
156 virtual
bool isPlayScreen() const ;
158 virtual
bool renderOnlyWhenTopMost() const ;
160 virtual
bool lowFreqRendering() const ;
162 virtual
bool ignoreAsTop() const ;
164 virtual
bool shouldBeSkippedInAutomation() const ;
166 virtual
int getWidth() ;
168 virtual
int getHeight() ;
170 virtual
void reload() ;
172 virtual ::EyeRenderingModeBit getEyeRenderingMode() const ;
174 virtual ::ui::SceneType getSceneType() const ;
176 virtual ::std::
string getScreenName() const ;
178 virtual
bool equalsScreenName(::std::string_view comparison) const ;
180 virtual
bool containsScreenNameSubstring(::std::string_view substring) const ;
182 virtual ::std::
string getRawScreenName() const ;
184 virtual
bool equalsRawScreenName(::std::string_view comparison) const ;
186 virtual ::std::
string getRoute() const ;
188 virtual ::std::
string getScreenTelemetryName() const ;
190 virtual
void addEventProperties(::std::unordered_map<::std::
string, ::std::
string>&) const ;
192 virtual
int getScreenVersion() const ;
194 virtual
void processBufferedTextCharEvents(::std::vector<::TextCharEventData> const&) ;
196 virtual
bool getShouldSendEvents() ;
198 virtual
void setShouldSendEvents(
bool) ;
200 virtual
bool getWantsTextOnly() ;
202 virtual
void setWantsTextOnly(
bool) ;
204 virtual
void onDelete(::CachedScenes&, ::TaskGroup&) ;
206 virtual
bool isGamepadCursorEnabled() const ;
208 virtual
bool isGamepadDeflectionModeEnabled() const ;
210 virtual ::glm::vec2 const& getGamepadCursorPosition() const ;
212 virtual
void cleanInputComponents() ;
214 virtual ::std::weak_ptr<::AbstractSceneProxy> getProxy() ;
216 virtual
bool canBePushed() const ;
218 virtual
bool canBePopped() const ;
220 virtual
bool canBeTransitioned() const ;
222 virtual
void onScreenExit(
bool,
bool, ::std::shared_ptr<::AbstractScene>) ;
224 virtual
void onScreenEntrance(
bool,
bool) ;
226 virtual
bool isEntering() const ;
228 virtual
bool isExiting() const ;
230 virtual
void schedulePop() ;
232 virtual
bool isTerminating() const ;
234 virtual
bool loadScreenImmediately() const ;
236 virtual
bool forceUpdateActiveSceneStackWhenPushed() const ;
238 virtual ::RectangleArea getAreaOfControlByName(::std::
string const&) const ;
240 virtual
bool hasFinishedLoading() const ;
242 virtual
void sendScreenEvent(::std::
string const& eventName, ::std::
string const& eventData) ;
244 virtual
void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&) ;
246 virtual ::Bedrock::NonOwnerPointer<::OreUI::Debug::ISceneDataProvider const> getDebugDataProvider() const
249 virtual
void onLoadFailed(
char const*,
char const*) ;
251 virtual
void onViewReused() ;
253 virtual
void onReusedViewReleased() ;
255 virtual
bool isInputEnabled() const ;
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 RouterLocation.h:7
MCAPI void _updateRouteAndRouteMode(::std::optional<::OreUI::RouterLocation > const &previousLocation, ::std::optional<::OreUI::RouterLocation > const ¤tLocation)
MCAPI void $tick(int, int)
MCAPI bool $hasFinishedLoading() const
MCAPI bool $closeOnPlayerHurt() const
MCAPI bool $forceUpdateActiveSceneStackWhenPushed() const
MCAPI bool $lowFreqRendering() const
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 bool $isEditorMode() const
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 $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 $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
Definition FrameRenderObject.h:5
Definition PointerLocationEventData.h:5
Definition ScreenSizeData.h:5
Definition TextCharEventData.h:5
Definition TouchPadTouchEventData.h:5