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/MinecraftScreenModel.h"
9#include "mc/client/gui/screens/models/PersonaScreenModelCommon.h"
10#include "mc/client/gui/screens/models/persona/SizeSectionModel.h"
11#include "mc/client/persona/SkinHandle.h"
12#include "mc/client/services/persona/DownloadImportManager.h"
13#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
14#include "mc/world/actor/player/persona/PieceSide.h"
15#include "mc/world/actor/player/persona/PieceType.h"
16#include "mc/world/actor/player/persona/ProfileType.h"
17
18// auto generated forward declare list
19// clang-format off
20class AchievementData;
21class IStoreCatalogItem;
22class PersonaProfile;
24class SkinPackModel;
25struct LinksToStyle;
26namespace Social::eventData { class PersonaOfferClickedData; }
27namespace persona { class PieceOfferWrapper; }
28namespace persona { struct PersonaCharacterHandle; }
29// clang-format on
30
34public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<4, 4, float const> DEFAULT_PAPERDOLL_ROTATION;
38 ::ll::TypedStorage<4, 4, float const> PAPERDOLL_BACK_ROTATION;
39 ::ll::TypedStorage<8, 32, ::persona::SizeSectionModel> mSizeSectionModel;
40 ::ll::TypedStorage<8, 112, ::SkinHandle> mSelectedSkinHandle;
41 ::ll::TypedStorage<4, 4, ::persona::PieceSide> mCurrentPieceSide;
42 ::ll::TypedStorage<4, 4, int> mSelectedSkinPackCollectorIndex;
43 ::ll::TypedStorage<4, 4, int> mSelectedSkinPackModelIndex;
44 ::ll::TypedStorage<4, 4, int> mSelectedSkinIndex;
45 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinPackCollectionModel>>> mSkinPackCollectors;
46 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Social::eventData::PersonaOfferClickedData>> mOfferClickedData;
47 ::ll::TypedStorage<8, 8, int64> mNextPossibleEventClickedTime;
48 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackModel>> mInvalidSkinPackModel;
49 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SkinPackCollectionModel>> mInvalidSkinPackCollectionModel;
50 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicOwnedSkinPackCollection;
51 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicPurchasableSkinPackCollection;
52 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SkinPackCollectionModel>> mClassicRealmsPlusSkinPackCollection;
53 ::ll::TypedStorage<8, 128, ::persona::DownloadImportManager> mPersonaDownloadManager;
54 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
55 // NOLINTEND
56
57public:
58 // prevent constructor by default
59 PersonaScreenModel();
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~PersonaScreenModel() /*override*/;
65
66 virtual void update(::ui::DirtyFlag& dirtyFlags) /*override*/;
67
68 virtual ::SkinHandle const& getSelectedSkinHandle() const /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCAPI explicit PersonaScreenModel(::MinecraftScreenModel::Context context);
75
76 MCAPI ::SkinPackCollectionModel& _getInvalidSkinPackCollectionModel();
77
78 MCAPI void _initializeSkinPackCollectors();
79
80 MCAPI bool _playerHasContentSubscription() const;
81
82 MCAPI bool collectPersonaOffer(
83 ::persona::PieceOfferWrapper const& pieceOffer,
84 ::std::function<void(bool)> onOfferCollectedCallback,
85 bool exclusiveDownload
86 );
87
88 MCAPI void createPersonaAtSelectedSlot(uint defaultIndex, ::std::function<void()> onPersonaCreatedCallback);
89
90 MCAPI void cycleCurrentPieceSide(::IStoreCatalogItem const& pieceOffer, ::persona::PieceSide direction);
91
92 MCAPI void displayNewCharacterToast();
93
94 MCAPI ::AchievementData const& getOfferAchievement(::persona::PieceOfferWrapper const& offer) const;
95
96 MCAPI ::std::shared_ptr<::PersonaProfile>& getPersonaProfileForActiveClient(::persona::ProfileType type);
97
98 MCAPI ::std::string const getPrimaryUserTitleAccountPlayFabId();
99
100 MCAPI bool isArmOrLegEquippedOnBothSides(bool isArmPieceType, ::std::string const& pieceId) const;
101
102 MCAPI bool
103 isArmOrLegEquippedOnSelectedSide(::persona::PieceType const& pieceType, ::std::string const& pieceId) const;
104
105 MCAPI bool isArmOrLegTypeAndEquipped(::persona::PieceOfferWrapper const& activeOffer) const;
106
107 MCAPI bool isCustomSkin(::SkinHandle const& handle) const;
108
109 MCAPI bool isOfferAchievementUnlocked(::persona::PieceOfferWrapper const& offer) const;
110
111 MCAPI bool
112 isPersonaEquipButtonVisible(::persona::PieceOfferWrapper const& activeOffer, bool isCoinPurchasVisible) const;
113
114 MCAPI bool isRealmsPlusBannerVisible(::persona::PieceOfferWrapper const& activeOffer) const;
115
116 MCAPI bool isSkinOwned(::SkinPackModel const& skinPack, ::SkinHandle const& handle) const;
117
118 MCAPI bool isUnredeemedRealmsItemSelected(::persona::PieceOfferWrapper const& activeOffer) const;
119
120 MCAPI bool isValidRealmsItemSelected(::persona::PieceOfferWrapper const& activeOffer) const;
121
122 MCAPI void newCharacter(::LinksToStyle const& linkTo, uint defaultAppearanceIndex);
123
124 MCAPI bool setUseClassicSkinOnPersona(::persona::PersonaCharacterHandle const& handle, bool usage);
125
126 MCAPI void showProfileSettingsScreen();
127
128 MCAPI void syncSelectedSkinHandle();
129 // NOLINTEND
130
131public:
132 // constructor thunks
133 // NOLINTBEGIN
134 MCAPI void* $ctor(::MinecraftScreenModel::Context context);
135 // NOLINTEND
136
137public:
138 // destructor thunk
139 // NOLINTBEGIN
140 MCAPI void $dtor();
141 // NOLINTEND
142
143public:
144 // virtual function thunks
145 // NOLINTBEGIN
146 MCAPI void $update(::ui::DirtyFlag& dirtyFlags);
147
148 MCFOLD ::SkinHandle const& $getSelectedSkinHandle() const;
149 // NOLINTEND
150
151public:
152 // vftables
153 // NOLINTBEGIN
154 MCNAPI static void** $vftableForIMinecraftScreenModel();
155
156 MCNAPI static void** $vftableForIDlcBatcher();
157
158 MCNAPI static void** $vftableForMainMenuScreenModel();
159
161
163 // NOLINTEND
164};
Definition AchievementData.h:5
Definition EnableNonOwnerReferences.h:7
Definition MainMenuScreenModel.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 MinecraftScreenModel.h:15
Definition PersonaCharacterHandle.h:10