LeviLamina
Loading...
Searching...
No Matches
PersonaScreenModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
15
16// auto generated forward declare list
17// clang-format off
18class AchievementData;
20class IStoreCatalogItem;
22class PersonaProfile;
24class SkinPackModel;
25struct LinksToStyle;
27namespace Social::eventData { class PersonaOfferClickedData; }
28namespace mce { class UUID; }
29namespace persona { class PieceOfferWrapper; }
30namespace persona { struct PersonaCharacterHandle; }
31// clang-format on
32
36public:
37 // member variables
38 // NOLINTBEGIN
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;
57 // NOLINTEND
58
59public:
60 // prevent constructor by default
61 PersonaScreenModel();
62
63public:
64 // virtual functions
65 // NOLINTBEGIN
66 virtual ~PersonaScreenModel() /*override*/;
67
68 virtual void update(::ui::DirtyFlag& dirtyFlags) /*override*/;
69
70 virtual ::SkinHandle const& getSelectedSkinHandle() const /*override*/;
71 // NOLINTEND
72
73public:
74 // member functions
75 // NOLINTBEGIN
76 MCAPI explicit PersonaScreenModel(::MinecraftScreenModelContext context);
77
78 MCAPI ::SkinPackCollectionModel& _getInvalidSkinPackCollectionModel();
79
80 MCAPI void _initializeSkinPackCollectors();
81
82 MCAPI bool _playerHasContentSubscription() const;
83
84 MCAPI ::SkinHandle addCustomSkin(::SkinHandle const& skinHandle);
85
86 MCAPI bool areSkinPackModelsReady() const;
87
88 MCAPI bool checkPersonaServiceSavedToCacheFlag();
89
90 MCAPI void clearPersonaServiceSavedToCacheFlag();
91
92 MCAPI bool collectPersonaOffer(
93 ::persona::PieceOfferWrapper const& pieceOffer,
94 ::std::function<void(bool)> onOfferCollectedCallback,
95 bool exclusiveDownload
96 );
97
98 MCAPI ::std::shared_ptr<::DlcBatchCacheModel> createDlcBatchCacheModel() const;
99
100 MCAPI void createPersonaAtSelectedSlot(uint defaultIndex, ::std::function<void()> onPersonaCreatedCallback);
101
102 MCAPI void cycleCurrentPieceSide(::IStoreCatalogItem const& pieceOffer, ::persona::PieceSide direction);
103
104 MCAPI void displayNewCharacterToast();
105
106 MCAPI ::std::string getAchievementOfferLockStateTexture(::persona::PieceOfferWrapper const& pieceOffer) const;
107
108 MCAPI ::persona::PieceSide const& getCurrentPieceSide() const;
109
110 MCAPI ::SkinPackCollectionModel& getCurrentSelectedSkinPackCollector();
111
112 MCAPI ::AchievementData const& getOfferAchievement(::persona::PieceOfferWrapper const& offer) const;
113
114 MCAPI ::std::shared_ptr<::PersonaProfile>& getPersonaProfileForActiveClient(::persona::ProfileType type);
115
116 MCAPI ::std::string const getPrimaryUserTitleAccountPlayFabId();
117
118 MCAPI bool isAchievementOfferNotOwned(::persona::PieceOfferWrapper const& offer) const;
119
120 MCAPI bool isArmOrLegTypeAndEquipped(::persona::PieceOfferWrapper const& activeOffer) const;
121
122 MCAPI bool isCustomSkin(::SkinHandle const& handle) const;
123
124 MCAPI bool isOfferAchievementUnlocked(::persona::PieceOfferWrapper const& offer) const;
125
126 MCAPI bool
127 isPersonaEquipButtonVisible(::persona::PieceOfferWrapper const& activeOffer, bool isCoinPurchasVisible) const;
128
129 MCAPI bool isPieceEquipped(::std::string const& pieceId) const;
130
131 MCAPI bool isPieceLoaded(::mce::UUID const& pieceId) const;
132
133 MCAPI bool isPieceOfferLoading(::persona::PieceOfferWrapper const& offer) const;
134
135 MCAPI bool isPiecePreviewed(::std::string const& pieceId) const;
136
137 MCAPI bool isRealmsPlusBannerVisible(::persona::PieceOfferWrapper const& activeOffer) const;
138
139 MCAPI bool isRealmsRedeemButtonVisible(::persona::PieceOfferWrapper const& activeOffer) const;
140
141 MCAPI bool isRealmsSubscriptionButtonVisible(::persona::PieceOfferWrapper const& activeOffer) const;
142
143 MCAPI bool isSkinOwned(::SkinPackModel const& skinPack, ::SkinHandle const& handle) const;
144
145 MCAPI bool isSkinRestricted(::SkinPackModel const& skinPack) const;
146
147 MCAPI void newCharacter(::LinksToStyle const& linkTo, uint defaultAppearanceIndex);
148
149 MCAPI void sendCurrentPersonaSkinIfNeeded(::PersonaAppearance const& initialAppearance, bool inGame);
150
151 MCAPI void setSelectedSkinHandle(::SkinHandle newSelectedSkinHandle);
152
153 MCAPI bool setUseClassicSkinOnPersona(::persona::PersonaCharacterHandle const& handle, bool usage);
154
155 MCAPI void showProfileSettingsScreen();
156
157 MCAPI void syncSelectedSkinHandle();
158
159 MCAPI void updateOfferClickedData(::Social::eventData::PersonaOfferClickedData&& offerClickedData);
160 // NOLINTEND
161
162public:
163 // constructor thunks
164 // NOLINTBEGIN
165 MCAPI void* $ctor(::MinecraftScreenModelContext context);
166 // NOLINTEND
167
168public:
169 // destructor thunk
170 // NOLINTBEGIN
171 MCAPI void $dtor();
172 // NOLINTEND
173
174public:
175 // virtual function thunks
176 // NOLINTBEGIN
177 MCAPI void $update(::ui::DirtyFlag& dirtyFlags);
178
179 MCFOLD ::SkinHandle const& $getSelectedSkinHandle() const;
180 // NOLINTEND
181
182public:
183 // vftables
184 // NOLINTBEGIN
185 MCNAPI static void** $vftableForIMinecraftScreenModel();
186
187 MCNAPI static void** $vftableForIDlcBatcher();
188
189 MCNAPI static void** $vftableForMainMenuScreenModel();
190
192
194 // NOLINTEND
195};
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 UUID.h:7
Definition PieceOfferWrapper.h:7
Definition MinecraftScreenModelContext.h:5
Definition PersonaCharacterHandle.h:10