3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/GameEventNotification.h"
7#include "mc/client/gui/SceneType.h"
8#include "mc/client/gui/screens/interfaces/ISceneStack.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/platform/brstd/function_ref.h"
17class UIEventCoordinator;
20namespace Bedrock::PubSub {
class Subscription; }
21namespace OreUI {
struct RouteAction; }
28 class SceneStackEvent;
29 class PushScreenEvent;
31 class PopRangeOfTypeScreenEvent;
32 class FlushScreenEvent;
33 class ReloadScreenEvent;
40 enum class EventType :
int {
103 PushScreenEvent(::std::shared_ptr<::AbstractScene> scene, ::std::optional<::OreUI::RouteAction> routeAction);
109 MCNAPI
void*
$ctor(::std::shared_ptr<::AbstractScene> scene, ::std::optional<::OreUI::RouteAction> routeAction);
261 virtual void reload() ;
263 virtual void setOptions(::std::weak_ptr<::Options> options) ;
266 registerSceneChangeCallback(
void* token, ::std::function<
void(
::AbstractScene&)> sceneChangeCallback) ;
268 virtual void unregisterSceneChangeCallback(
void* token) ;
270 virtual void registerPrePushSceneCallback(
275 virtual void unregisterPrePushSceneCallback(
void* token) ;
277 virtual void registerPushSceneCallback(
279 ::std::function<
void(::std::shared_ptr<::AbstractScene>, ::std::optional<::OreUI::RouteAction>)>
283 virtual void unregisterPushSceneCallback(
void* token) ;
286 registerPrePopSceneCallback(
void* token, ::std::function<
void(
::AbstractScene*)> prePopSceneCallback) ;
288 virtual void unregisterPrePopSceneCallback(
void* token) ;
290 virtual void registerPopSceneCallback(
292 ::std::function<
void(::std::shared_ptr<::AbstractScene>,
bool, ::std::optional<::OreUI::RouteAction>)>
296 virtual void unregisterPopSceneCallback(
void* token) ;
298 virtual void forEachVisibleScreen(
300 bool tickedLastFrame,
301 bool splitscreenRenderBypassThisFrame
304 virtual void forEachScreen(::brstd::function_ref<
bool(
::AbstractScene&)> callback,
bool topDown) ;
306 virtual void forEachScreenConst(::brstd::function_ref<
bool(
::AbstractScene const&)> callback,
bool topDown)
const
309 virtual void forEachAlwaysAcceptInputScreen(
315 forEachAlwaysAcceptInputScreenWithTop(::brstd::function_ref<
void(
::AbstractScene&)> callback) ;
317 virtual void pushScreenWithRouteAction(
318 ::std::shared_ptr<::AbstractScene> newScreen,
324 virtual void pushScreen(::std::shared_ptr<::AbstractScene> newScreen,
bool flush) ;
326 virtual void schedulePopScreen(
int totalPopNumber) ;
329 schedulePopScreenWithExpectedNames(::std::vector<::std::string>
const& expectedScreenNames) ;
331 virtual void flushStack(
333 bool ignoreNotFlushableFlag,
334 bool ignoreTransitions,
335 ::std::function<
void()> postFlushCallback
338 virtual void deferUpdatesUntilNextTick() ;
340 virtual ::std::optional<uint64> getFirstSceneIndexOfSceneType(::ui::SceneType sceneType)
const ;
342 virtual bool popScreensBackTo(::ui::SceneType
const) ;
344 virtual bool popScreensBackToFirstInstanceOf(::ui::SceneType
const) ;
346 virtual bool popTopScreensOfType(::ui::SceneType
const) ;
348 virtual bool update() ;
350 virtual void resetScreenChangeDirtyFlag() ;
352 virtual bool hasChangedThisFrame() const ;
354 virtual
bool isEmpty() const ;
356 virtual uint64 getSize() const ;
358 virtual
void setScreenTickingFlag(
bool screenIsTicking) ;
360 virtual
bool getScreenTickingFlag() const ;
362 virtual ::ui::SceneType getNonTerminatingSceneType() const ;
364 virtual ::
std::vector<::
std::
string> getScreenNames() const ;
366 virtual ::
std::vector<::
std::
string> getScreenTelemetryNames() const ;
368 virtual ::
std::
string getScreenName() const ;
370 virtual ::
std::
string getScreenTelemetry() const ;
372 virtual ::
std::
string const& getLastPoppedScreenName() const ;
374 virtual
void handleLicenseChanged() ;
376 virtual
void onGameEventNotification(::ui::GameEventNotification notification) ;
388 virtual ::
std::shared_ptr<::
AbstractScene> getSharedNonTerminatingActiveScene() ;
390 virtual ::
std::shared_ptr<::
AbstractScene const> const getSharedNonTerminatingActiveScene() const ;
392 virtual ::gsl::span<::ISceneStack::SceneElement const> getScreenStackView() const ;
394 virtual
int getScheduledPopCount() const ;
396 virtual
bool isScreenReplaceable() const ;
398 virtual
void handleTextChar(::
std::
string const& inputUtf8,
bool keepImePosition) ;
400 virtual
void setBufferTextCharEvents(
bool pushTextCharEvents) ;
402 virtual
bool isBufferingTextCharEvents() const ;
404 virtual
bool isOnSceneStack(::ui::SceneType sceneType) const ;
406 virtual
bool isOnSceneStack(::
std::
string const& screenName) const ;
410 virtual
bool hasScheduledScreens() const ;
412 virtual
bool hasScheduledEvents() const ;
414 virtual
void setScreenThreshold(::
ScreenThreshold const& screenThreshold) ;
416 virtual ::Bedrock::PubSub::Subscription
417 registerSceneStackDestroyedListener(::
std::function<
void()> callback) ;
425 ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> const& uiEventCoordinator,
426 ::
std::function<
bool()> const& getSuspended
439 bool ignoreTransitions,
440 ::
std::optional<::OreUI::RouteAction> routeAction,
441 ::
std::vector<::
std::
string> const& expectedScreenNames
448 ::
std::optional<::OreUI::RouteAction> routeAction,
449 ::
std::vector<::
std::
string> const& expectedScreenNames
455 ::
std::optional<::OreUI::RouteAction> routeAction
466 bool splitscreenRenderBypassThisFrame,
467 uint64 topStackIndex,
470 bool renderDrawLastScreens
473 MCNAPI static
void forEachVisibleScreen(
476 bool tickedLastFrame,
477 bool splitscreenRenderBypassThisFrame,
487 ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> const& uiEventCoordinator,
488 ::
std::function<
bool()> const& getSuspended
536 bool tickedLastFrame,
537 bool splitscreenRenderBypassThisFrame
564 bool ignoreNotFlushableFlag,
565 bool ignoreTransitions,
566 ::
std::function<
void()> postFlushCallback
Definition AbstractScene.h:5
Definition SceneStackProxy.h:5
Definition SceneStack.h:175
static MCAPI void ** $vftable()
Definition SceneStack.h:147
static MCAPI void ** $vftable()
Definition SceneStack.h:119
static MCAPI void ** $vftable()
Definition SceneStack.h:79
static MCAPI void ** $vftable()
MCAPI void * $ctor(::std::shared_ptr<::AbstractScene > scene, ::std::optional<::OreUI::RouteAction > routeAction)
MCAPI PushScreenEvent(::std::shared_ptr<::AbstractScene > scene, ::std::optional<::OreUI::RouteAction > routeAction)
Definition SceneStack.h:203
static MCAPI void ** $vftable()
Definition SceneStack.h:37
static MCAPI void ** $vftable()
Definition SceneStack.h:5
MCAPI bool _handleFlushEvent(::SceneStack::FlushScreenEvent const &flushEvent)
MCAPI void $registerSceneChangeCallback(void *token, ::std::function< void(::AbstractScene &)> sceneChangeCallback)
static MCAPI void _forEachVisibleScreen(::brstd::function_ref< void(::AbstractScene &)> callback, ::std::function<::AbstractScene *(int)> getScreen, bool, bool splitscreenRenderBypassThisFrame, uint64 topStackIndex, uint64 startIndex, uint64 endIndex, bool renderDrawLastScreens)
MCAPI void $setScreenThreshold(::ScreenThreshold const &screenThreshold)
MCAPI void $setOptions(::std::weak_ptr<::Options > options)
MCAPI bool $isOnSceneStack(::ui::SceneType sceneType) const
MCAPI void $forEachAlwaysAcceptInputScreen(::brstd::function_ref< void(::AbstractScene &)> callback, ::AbstractScene const *ignoreScreen)
MCAPI void $forEachVisibleScreen(::brstd::function_ref< void(::AbstractScene &)> callback, bool tickedLastFrame, bool splitscreenRenderBypassThisFrame)
MCAPI void $forEachAlwaysAcceptInputScreenWithTop(::brstd::function_ref< void(::AbstractScene &)> callback)
MCAPI void * $ctor(::CachedScenes &cachedScenes, ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator > const &uiEventCoordinator, ::std::function< bool()> const &getSuspended)
MCAPI void $pushScreen(::std::shared_ptr<::AbstractScene > newScreen, bool flush)
MCAPI void $popScreenWithRouteAction(::OreUI::RouteAction const &routeAction)
MCAPI bool $isEmpty() const
MCAPI void _schedulePushScreen(::std::shared_ptr<::AbstractScene > newScreen, bool flush, ::std::optional<::OreUI::RouteAction > routeAction)
MCAPI ::std::optional< uint64 > $getFirstSceneIndexOfSceneType(::ui::SceneType sceneType) const
MCAPI::Bedrock::PubSub::Subscription $registerSceneStackDestroyedListener(::std::function< void()> callback)
MCAPI bool $hasScheduledEvents() const
MCAPI int $getScheduledPopCount() const
MCAPI::std::string $getScreenTelemetry() const
MCAPI uint64 $getSize() const
MCAPI bool _popScreens(int &popCount, bool ignoreTransitions, ::std::optional<::OreUI::RouteAction > routeAction, ::std::vector<::std::string > const &expectedScreenNames)
MCAPI bool _handlePushEvent(::SceneStack::PushScreenEvent &pushEvent)
MCAPI void $unregisterPrePopSceneCallback(void *token)
MCAPI bool _animationsEnabled() const
MCAPI void $forEachScreenConst(::brstd::function_ref< bool(::AbstractScene const &)> callback, bool topDown) const
MCAPI void $deferUpdatesUntilNextTick()
MCAPI bool $isBufferingTextCharEvents() const
static MCAPI void ** $vftable()
MCAPI ::std::shared_ptr<::AbstractScene > $getTopSceneShared() const
MCAPI ::std::vector<::std::string > $getScreenTelemetryNames() const
MCAPI ::gsl::span<::ISceneStack::SceneElement const > $getScreenStackView() const
MCAPI void $registerPrePopSceneCallback(void *token, ::std::function< void(::AbstractScene *)> prePopSceneCallback)
MCAPI void $unregisterPushSceneCallback(void *token)
MCAPI ::std::shared_ptr<::AbstractScene > $getSharedNonTerminatingActiveScene()
MCAPI void $setScreenTickingFlag(bool screenIsTicking)
MCAPI void $pushScreenWithRouteAction(::std::shared_ptr<::AbstractScene > newScreen, ::OreUI::RouteAction const &routeAction)
MCAPI bool _scenesAllIgnoreAsTop(int count) const
MCAPI void $unregisterPopSceneCallback(void *token)
MCAPI::ui::SceneType $getNonTerminatingSceneType() const
MCAPI void $registerPopSceneCallback(void *token, ::std::function< void(::std::shared_ptr<::AbstractScene >, bool, ::std::optional<::OreUI::RouteAction >)> popSceneCallback)
MCAPI::std::string const & $getLastPoppedScreenName() const
MCAPI void $resetScreenChangeDirtyFlag()
MCAPI void $schedulePopScreen(int totalPopNumber)
MCAPI::AbstractScene * $getTopScene()
MCAPI bool $isScreenReplaceable() const
MCAPI void $unregisterSceneChangeCallback(void *token)
MCAPI void $schedulePopScreenWithExpectedNames(::std::vector<::std::string > const &expectedScreenNames)
MCAPI::SceneStackProxy * $getProxy()
MCAPI bool $hasChangedThisFrame() const
MCAPI void $handleLicenseChanged()
MCAPI void $registerPrePushSceneCallback(void *token, ::std::function< void(::AbstractScene &)> prePushSceneCallback)
MCAPI void $registerPushSceneCallback(void *token, ::std::function< void(::std::shared_ptr<::AbstractScene >, ::std::optional<::OreUI::RouteAction >)> pushSceneCallback)
MCAPI bool $getScreenTickingFlag() const
MCAPI bool $hasScheduledScreens() const
MCAPI void $unregisterPrePushSceneCallback(void *token)
MCAPI void _schedulePopScreen(int totalPopNumber, ::std::optional<::OreUI::RouteAction > routeAction, ::std::vector<::std::string > const &expectedScreenNames)
MCAPI void $handleTextChar(::std::string const &inputUtf8, bool keepImePosition)
MCAPI::std::string $getScreenName() const
MCAPI::AbstractScene * $getActiveScene()
MCAPI bool _handlePopRangeOfScreensEvent(::SceneStack::PopRangeOfTypeScreenEvent &popRangeEvent)
MCAPI void $setBufferTextCharEvents(bool pushTextCharEvents)
MCAPI ::std::vector<::std::string > $getScreenNames() const
MCAPI void $onGameEventNotification(::ui::GameEventNotification notification)
MCAPI void $forEachScreen(::brstd::function_ref< bool(::AbstractScene &)> callback, bool topDown)
MCAPI void $flushStack(bool immediate, bool ignoreNotFlushableFlag, bool ignoreTransitions, ::std::function< void()> postFlushCallback)
Definition CachedScenes.h:5
Definition RouteAction.h:7
Definition ScreenThreshold.h:5