3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/game/ControlOptionType.h"
7#include "mc/client/gui/DirtyFlag.h"
8#include "mc/client/gui/GameEventNotification.h"
9#include "mc/client/gui/SceneType.h"
10#include "mc/client/gui/SoundDirection.h"
11#include "mc/client/gui/TitleMessage.h"
12#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
13#include "mc/client/input/vanilla/remapping/ActionEnum.h"
14#include "mc/deps/core/timing/Stopwatch.h"
15#include "mc/deps/core/utility/pub_sub/Subscription.h"
16#include "mc/options/option_types/OptionID.h"
17#include "mc/world/ContainerID.h"
18#include "mc/world/actor/ai/util/BossBarColor.h"
19#include "mc/world/level/BlockPos.h"
29namespace Json {
class Value; }
30namespace mce {
class Color; }
42 enum class Tooltips : uchar {
52 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> chatbuttonList;
53 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> ttsButtonList;
60 enum class Type : uchar {
69 ::ll::TypedStorage<4, 4, ::Remapping::ActionEnum> action;
70 ::ll::TypedStorage<1, 1, ::HudScreenController::Tooltip::Type> type;
71 ::ll::TypedStorage<8, 64, ::std::function<::std::string()>> generateTooltipDescription;
72 ::ll::TypedStorage<8, 32, ::std::string> keyPostfix;
79 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnBossEventWithPacketSubscription;
80 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnBossEventSubscription;
81 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelSoundEvent;
82 ::ll::TypedStorage<1, 1, bool> mEduDiscoveryObserved;
83 ::ll::TypedStorage<4, 4, int> mInputDelayTimer;
84 ::ll::TypedStorage<8, 32, ::std::string> mPopupItemText;
85 ::ll::TypedStorage<8, 32, ::std::string> mPopupJukeboxText;
86 ::ll::TypedStorage<8, 32, ::std::string> mTipText;
87 ::ll::TypedStorage<4, 12, ::BlockPos> mPlayerPos;
88 ::ll::TypedStorage<4, 12, ::BlockPos> mAgentPos;
89 ::ll::TypedStorage<4, 4, ::ui::DirtyFlag> mRecordedDirtyState;
90 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::HudContainerManagerController>> mHudScreenManagerController;
91 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ScoreboardScreenController>> mScoreboardScreenController;
92 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GameTipScreenController>> mGameTipScreenController;
93 ::ll::TypedStorage<1, 1, bool> mIsPlayerRiding;
94 ::ll::TypedStorage<1, 1, bool> mIsCreative;
95 ::ll::TypedStorage<1, 1, bool> mIsSpectator;
96 ::ll::TypedStorage<1, 1, bool> mIsExpediateEmoteActive;
97 ::ll::TypedStorage<1, 1, bool> mHasPresentedInitialChat;
98 ::ll::TypedStorage<1, 1, bool> mIsAutoSaving;
99 ::ll::TypedStorage<1, 1, bool> mIsAutoSaveTimerDone;
100 ::ll::TypedStorage<8, 56, ::Stopwatch> mAutoSaveTimer;
101 ::ll::TypedStorage<8, 56, ::Stopwatch> mHUDOpacityTimer;
102 ::ll::TypedStorage<4, 4, float> mHUDOpacityOverride;
103 ::ll::TypedStorage<1, 1, bool> mOverrideHUDOpacity;
104 ::ll::TypedStorage<1, 1, bool> mShouldFireInitialControlTipsActivationEvent;
105 ::ll::TypedStorage<1, 1, bool> mIsDisplayingGameTip;
106 ::ll::TypedStorage<1, 1, bool> mIsTitleOnDisplay;
107 ::ll::TypedStorage<1, 1, bool> mIsActionBarMessageOnDisplay;
108 ::ll::TypedStorage<8, 232, ::TitleMessage> mTitleQueuedData;
109 ::ll::TypedStorage<8, 232, ::TitleMessage> mTitleOnDisplayData;
110 ::ll::TypedStorage<8, 24, ::std::vector<::HudScreenController::Tooltip>> mLeftTooltips;
111 ::ll::TypedStorage<8, 24, ::std::vector<::HudScreenController::Tooltip>> mRightTooltips;
112 ::ll::TypedStorage<8, 24, ::std::vector<::HudScreenController::Tooltip>> mEmoteTooltips;
113 ::ll::TypedStorage<1, 1, bool> mOnNewDeathScreen;
114 ::ll::TypedStorage<1, 1, bool> mShowCursor;
115 ::ll::TypedStorage<8, 16, ::std::map<::OptionID, float>> mCustomizableFloatOptions;
116 ::ll::TypedStorage<8, 16, ::std::set<uint>> mPreviouslyActiveControlOptions;
117 ::ll::TypedStorage<4, 4, ::ui::DirtyFlag> mOnNewDeathScreenDirtyFlag;
118 ::ll::TypedStorage<1, 1, bool> mIsNewDeathScreenEnabled;
119 ::ll::TypedStorage<1, 1, bool> mProfanityFilterChanged;
120 ::ll::TypedStorage<1, 1, bool> mShouldUseFilteredMessage;
121 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mProfanityToggleSubscription;
122 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnRouteChangedSubscription;
123 ::ll::TypedStorage<1, 1, bool> mShouldShowLocatorBarPrev;
124 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mSubtitlePositionSubscription;
125 ::ll::TypedStorage<1, 1, bool> mSubtitlePositionChanged;
130 HudScreenController();
135 virtual ~HudScreenController() =
default;
137 virtual ::ui::DirtyFlag tick() ;
140 ::std::string
const& collectionName,
141 uint collectionNameHash,
143 ::std::string
const& bindingName,
144 uint bindingNameHash,
145 ::std::string
const& bindingNameOverride,
150 ::std::string
const& bindingName,
151 uint bindingNameHash,
152 ::std::string
const& bindingNameOverride,
156 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
158 virtual void onInit() ;
160 virtual void onOpen() ;
162 virtual void onScreenPushedAbove() ;
164 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
166 virtual ::ui::SceneType getSceneType() const ;
168 virtual
bool _isStillValid() const ;
174 MCAPI explicit HudScreenController(::std::shared_ptr<::ClientInstanceScreenModel> model);
177 ::Remapping::ActionEnum action,
178 ::
std::
string const& bindingNameOverride,
183 uint bindingNameHash,
184 ::
std::
string const& bindingNameOverride,
189 ::HudScreenController::
Tooltip const& tip,
190 uint bindingNameHash,
191 ::
std::
string const& bindingNameOverride,
199 ::
std::vector<::HudScreenController::
Tooltip> const& tooltips,
201 uint bindingNameHash,
202 ::
std::
string const& bindingNameOverride,
204 ::HudScreenController::Tooltips tooltipType
264 ::
std::
string const& message,
266 ::SoundDirection direction,
327 ::
std::
string const& collectionName,
328 uint collectionNameHash,
330 ::
std::
string const& bindingName,
331 uint bindingNameHash,
332 ::
std::
string const& bindingNameOverride,
337 ::
std::
string const& bindingName,
338 uint bindingNameHash,
339 ::
std::
string const& bindingNameOverride,
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition GameTipScreenController.h:5
Definition HudContainerManagerController.h:14
Definition HudScreenController.h:5
MCAPI void $onScreenPushedAbove()
MCAPI::std::string _getContextDismountButton() const
MCAPI::std::string _getContextImmersiveReader() const
MCAPI void _bindTooltipCollection(::std::vector<::HudScreenController::Tooltip > const &tooltips, int collectionIndex, uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag, ::HudScreenController::Tooltips tooltipType) const
MCAPI::std::string _getContextCraftingButton() const
MCAPI::std::string _getEmoteName(int slot)
MCAPI void _bindActionIconForGamepad(::Remapping::ActionEnum action, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag) const
MCAPI bool _showClassicUI() const
MCAPI void _recreateSubtitleContainer()
MCAPI void _handleSlotSelection(int slot, ::ContainerID containerId)
MCAPI::std::string _getContextCodeBuilder() const
static MCAPI char const *& ROOT_CONTROL_NAME_INCLUDING_NAMESPACE()
MCAPI void $addStaticScreenVars(::Json::Value &globalVars)
MCAPI void _fireInitialControlTipsActivationEvent() const
MCAPI::mce::Color _getBossColorValue(::BossBarColor barColor) const
MCAPI bool $bind(::std::string const &collectionName, uint collectionNameHash, int collectionIndex, ::std::string const &bindingName, uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag)
MCAPI void _leaveControlCustomizationScreen()
MCAPI::std::string _getContextChat() const
MCAPI float _getHudAlpha()
MCAPI bool _shouldShowTags() const
MCAPI::std::string const getFormattedOpenEmoteMessage(::std::vector<::std::string > const &buttonList) const
MCAPI::std::string _getContextDropItemButton() const
static MCAPI char const *& ROOT_CONTROL_NAME()
MCAPI bool _bindKeyboardTooltip(::HudScreenController::Tooltip const &tip, uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag) const
MCAPI void setupControlCustomizationCallbacksForOptions(::ControlOptionType controlOptionType)
MCAPI void _getFloatCustomizableOptionValue(::OptionID optionID)
MCAPI::ui::DirtyFlag $tick()
MCAPI::HudScreenController::ButtonLists const getGamepadEmoteButtonLists() const
MCAPI::std::string _getContextToggleFlight() const
MCAPI void displayOpenEmoteInstructions(::HudScreenController::ButtonLists const &buttonLists) const
MCAPI bool $_isStillValid() const
MCAPI void _pushNewChatMessage(::std::string const &message, float time)
MCAPI void _bindInventoryPromptsFlyout(uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag) const
MCAPI::HudScreenController::ButtonLists const getButtonLists() const
MCAPI void _handleNewActionBarMessage()
MCAPI bool _isTouchActive() const
MCAPI::std::string _getContextEmoteButton() const
MCAPI::std::string _getContextJumpButton() const
MCAPI::std::string _formatButtonList(::std::vector<::std::string > buttonList) const
MCAPI bool _showPocketUI() const
MCAPI::std::string _getContextUseButton() const
MCAPI bool _showPaperDoll() const
MCAPI void _pushNewSubtitleMessage(::std::string const &message, float timeSec, ::SoundDirection direction, bool isLocalPlayer)
MCAPI void _bindMenuPromptsFlyout(uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag) const
MCAPI bool _isAutoSaveIconVisible()
static MCAPI bool _shouldShowDefaultUseTooltip(::Block const &block)
MCAPI bool _isToolTipsHidden(::HudScreenController::Tooltips tooltipType, ::HudScreenController::Tooltip const *tip) const
MCAPI::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification)
MCAPI::std::string const getFormattedOpenChatMessage(::std::vector<::std::string > const &buttonList) const
MCAPI::ui::SceneType $getSceneType() const
MCAPI bool _shouldShowLocatorBar() const
MCAPI::std::string _getContextAttackButton() const
MCAPI void _refreshSubtitleMessages()
MCAPI::std::string _getContextDescendButton() const
MCAPI bool _showSurvivalUI() const
MCAPI::HudScreenController::ButtonLists const getKeyboardEmoteButtonLists() const
MCAPI void _bindTooltipFlyout(uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag) const
MCAPI::std::string _getContextInventoryButton() const
Definition ScoreboardScreenController.h:5
Definition UIPropertyBag.h:5