3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
9#include "mc/client/social/IToastEventListener.h"
10#include "mc/client/tutorial/game_tip_constants/Animation.h"
11#include "mc/client/tutorial/game_tip_constants/Interruption.h"
12#include "mc/deps/core/utility/pub_sub/Subscription.h"
13#include "mc/deps/input/InputMode.h"
29 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::HudContainerManagerController>> mHudContainerManagerController;
30 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::GameTip>>> mAvailableTips;
31 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::GameTip>> mActiveNowTip;
32 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::GameTip>> mInterruptedTip;
33 ::ll::TypedStorage<4, 4, float> mActiveNowTipGuiScale;
34 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mActiveDisplayFactoryName;
35 ::ll::TypedStorage<8, 64, ::std::unordered_set<::GameTipConstants::Interruption>> mInterruptions;
36 ::ll::TypedStorage<8, 8, ::std::chrono::seconds> mCooldownAfterStoppedDisplaying;
37 ::ll::TypedStorage<8, 8, ::std::chrono::seconds> mCooldownAfterInterruption;
38 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTipStoppedDisplayingTime;
39 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastInterruptionFinishedTime;
40 ::ll::TypedStorage<4, 4, ::InputMode> mInputModeLastTick;
41 ::ll::TypedStorage<1, 1, bool> mFirstTick;
42 ::ll::TypedStorage<1, 1, bool> mUpdateBinds;
43 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mGametipOptionSubscription;
44 ::ll::TypedStorage<1, 1, bool> mShowGameTipsAnimations;
49 GameTipScreenController();
54 virtual ~GameTipScreenController() ;
56 virtual void onOpen() ;
58 virtual void onTerminate() ;
60 virtual ::ui::DirtyFlag tick() ;
63 handleToastEvent(::IToastEventListener::ToastEventType
const eventType, ::ToastMessage
const msg) ;
65 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
71 MCAPI GameTipScreenController(
72 ::std::shared_ptr<::ClientInstanceScreenModel> model,
73 ::std::shared_ptr<::HudContainerManagerController> mHudScreenManagerController
76 MCAPI
void _addActiveTipArrowProperties(::UIPropertyBag& bag);
78 MCAPI
void _addInterruption(::GameTipConstants::Interruption interruption);
80 MCAPI
void _cleanUpFinishedTips();
82 MCAPI
void _destroyActiveTip();
84 MCAPI
void _displayActiveTip(::GameTipConstants::Animation animation);
86 MCAPI
void _displayNewTip(::std::shared_ptr<::GameTip>
const& tip);
88 MCAPI
void _gametipOptionCallback(::Option
const& gametipEnabled);
90 MCAPI ::std::string _getActiveTipAnimationFileName(::InputMode inputMode);
92 MCAPI ::std::string _getActiveTipLocalizationText(::InputMode inputMode)
const;
94 MCAPI ::std::array<::std::string, 2> _getActiveTipOffset()
const;
96 MCAPI
void _handleInterruptions();
98 MCAPI
void _handleMobsNearbyInterruption();
100 MCAPI
void _instantiateTips();
102 MCAPI
void _maybeUpdateActiveNowTip();
104 MCAPI
void _removeInterruption(::GameTipConstants::Interruption interruption);
106 MCAPI
void _stopDisplayingActiveTip();
113 ::std::shared_ptr<::ClientInstanceScreenModel> model,
114 ::std::shared_ptr<::HudContainerManagerController> mHudScreenManagerController
127 MCAPI
void $onOpen();
129 MCFOLD
void $onTerminate();
131 MCAPI ::ui::DirtyFlag $tick();
133 MCAPI
void $handleToastEvent(::IToastEventListener::ToastEventType
const eventType, ::ToastMessage
const msg);
135 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition GameTipScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftable()
static MCAPI void ** $vftableForScreenController()
Definition HudContainerManagerController.h:14
Definition IToastEventListener.h:5
Definition ToastMessage.h:5
Definition UIPropertyBag.h:5