3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/screens/models/MainMenuScreenModel.h"
8#include "mc/client/gui/screens/models/PersonaScreenModelCommon.h"
9#include "mc/client/gui/screens/models/persona/SizeSectionModel.h"
10#include "mc/client/persona/SkinHandle.h"
11#include "mc/client/services/persona/DownloadImportManager.h"
12#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
13#include "mc/world/actor/player/persona/PieceSide.h"
14#include "mc/world/actor/player/persona/ProfileType.h"
20class IStoreCatalogItem;
28namespace mce {
class UUID; }
39 ::ll::TypedStorage<4, 4, float const> DEFAULT_PAPERDOLL_ROTATION;
40 ::ll::TypedStorage<4, 4, float const> PAPERDOLL_BACK_ROTATION;
41 ::ll::TypedStorage<8, 32, ::persona::SizeSectionModel> mSizeSectionModel;
42 ::ll::TypedStorage<8, 112, ::SkinHandle> mSelectedSkinHandle;
43 ::ll::TypedStorage<4, 4, ::persona::PieceSide> mCurrentPieceSide;
44 ::ll::TypedStorage<4, 4, int> mSelectedSkinPackCollectorIndex;
45 ::ll::TypedStorage<4, 4, int> mSelectedSkinPackModelIndex;
46 ::ll::TypedStorage<4, 4, int> mSelectedSkinIndex;
47 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinPackCollectionModel>>> mSkinPackCollectors;
48 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Social::eventData::PersonaOfferClickedData>> mOfferClickedData;
49 ::ll::TypedStorage<8, 8, int64> mNextPossibleEventClickedTime;
50 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackModel>> mInvalidSkinPackModel;
51 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SkinPackCollectionModel>> mInvalidSkinPackCollectionModel;
52 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicOwnedSkinPackCollection;
53 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicPurchasableSkinPackCollection;
54 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicRealmsPlusSkinPackCollection;
55 ::ll::TypedStorage<8, 128, ::persona::DownloadImportManager> mPersonaDownloadManager;
56 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
66 virtual ~PersonaScreenModel() ;
68 virtual void update(::ui::DirtyFlag& dirtyFlags) ;
70 virtual ::SkinHandle
const& getSelectedSkinHandle() const ;
76 MCAPI explicit PersonaScreenModel(::MinecraftScreenModelContext context);
78 MCAPI ::SkinPackCollectionModel& _getInvalidSkinPackCollectionModel();
80 MCAPI
void _initializeSkinPackCollectors();
82 MCAPI
bool _playerHasContentSubscription() const;
84 MCAPI ::SkinHandle addCustomSkin(::SkinHandle const& skinHandle);
86 MCAPI
bool areSkinPackModelsReady() const;
88 MCAPI
bool checkPersonaServiceSavedToCacheFlag();
90 MCAPI
void clearPersonaServiceSavedToCacheFlag();
92 MCAPI
bool collectPersonaOffer(
93 ::persona::PieceOfferWrapper const& pieceOffer,
94 ::std::function<
void(
bool)> onOfferCollectedCallback,
95 bool exclusiveDownload
98 MCAPI ::std::shared_ptr<::DlcBatchCacheModel> createDlcBatchCacheModel() const;
100 MCAPI
void createPersonaAtSelectedSlot(uint defaultIndex, ::std::function<
void()> onPersonaCreatedCallback);
102 MCAPI
void cycleCurrentPieceSide(::IStoreCatalogItem const& pieceOffer, ::persona::PieceSide direction);
104 MCAPI
void displayNewCharacterToast();
106 MCAPI ::std::
string getAchievementOfferLockStateTexture(::persona::PieceOfferWrapper const& pieceOffer) const;
108 MCAPI ::persona::PieceSide const& getCurrentPieceSide() const;
110 MCAPI ::SkinPackCollectionModel& getCurrentSelectedSkinPackCollector();
112 MCAPI ::AchievementData const& getOfferAchievement(::persona::PieceOfferWrapper const& offer) const;
114 MCAPI ::std::shared_ptr<::PersonaProfile>& getPersonaProfileForActiveClient(::persona::ProfileType type);
116 MCAPI ::std::
string const getPrimaryUserTitleAccountPlayFabId();
118 MCAPI
bool isAchievementOfferNotOwned(::persona::PieceOfferWrapper const& offer) const;
120 MCAPI
bool isArmOrLegTypeAndEquipped(::persona::PieceOfferWrapper const& activeOffer) const;
122 MCAPI
bool isCustomSkin(::SkinHandle const& handle) const;
124 MCAPI
bool isOfferAchievementUnlocked(::persona::PieceOfferWrapper const& offer) const;
127 isPersonaEquipButtonVisible(::persona::PieceOfferWrapper const& activeOffer,
bool isCoinPurchasVisible) const;
129 MCAPI
bool isPieceEquipped(::std::
string const& pieceId) const;
131 MCAPI
bool isPieceLoaded(::mce::UUID const& pieceId) const;
133 MCAPI
bool isPieceOfferLoading(::persona::PieceOfferWrapper const& offer) const;
135 MCAPI
bool isPiecePreviewed(::std::
string const& pieceId) const;
137 MCAPI
bool isRealmsPlusBannerVisible(::persona::PieceOfferWrapper const& activeOffer) const;
139 MCAPI
bool isRealmsRedeemButtonVisible(::persona::PieceOfferWrapper const& activeOffer) const;
141 MCAPI
bool isRealmsSubscriptionButtonVisible(::persona::PieceOfferWrapper const& activeOffer) const;
143 MCAPI
bool isSkinOwned(::SkinPackModel const& skinPack, ::SkinHandle const& handle) const;
145 MCAPI
bool isSkinRestricted(::SkinPackModel const& skinPack) const;
147 MCAPI
void newCharacter(::LinksToStyle const& linkTo, uint defaultAppearanceIndex);
149 MCAPI
void sendCurrentPersonaSkinIfNeeded(::PersonaAppearance const& initialAppearance,
bool inGame);
151 MCAPI
void setSelectedSkinHandle(::SkinHandle newSelectedSkinHandle);
153 MCAPI
bool setUseClassicSkinOnPersona(::persona::PersonaCharacterHandle const& handle,
bool usage);
155 MCAPI
void showProfileSettingsScreen();
157 MCAPI
void syncSelectedSkinHandle();
159 MCAPI
void updateOfferClickedData(::Social::eventData::PersonaOfferClickedData&& offerClickedData);
165 MCAPI
void* $ctor(::MinecraftScreenModelContext context);
177 MCAPI
void $update(::ui::DirtyFlag& dirtyFlags);
179 MCFOLD ::SkinHandle const& $getSelectedSkinHandle() const;
Definition AchievementData.h:5
Definition EnableNonOwnerReferences.h:7
Definition DlcBatchCacheModel.h:5
Definition MainMenuScreenModel.h:5
Definition PersonaAppearance.h:5
Definition PersonaProfile.h:5
Definition PersonaScreenModelCommon.h:5
Definition PersonaScreenModel.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForIMinecraftScreenModel()
static MCAPI void ** $vftableForIDlcBatcher()
static MCAPI void ** $vftableForPersonaScreenModelCommon()
static MCAPI void ** $vftableForMainMenuScreenModel()
Definition SkinPackCollectionModel.h:5
Definition SkinPackModel.h:5
Definition PersonaOfferClickedData.h:7
Definition PieceOfferWrapper.h:7
Definition MinecraftScreenModelContext.h:5
Definition PersonaCharacterHandle.h:10