3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/screens/models/PreviewedItemEventInformation.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/world/actor/player/persona/ArmSize.h"
10#include "mc/world/actor/player/persona/BodySize.h"
11#include "mc/world/actor/player/persona/PersonaCharacterHandle.h"
12#include "mc/world/actor/player/persona/PersonaError.h"
13#include "mc/world/actor/player/persona/PieceSide.h"
14#include "mc/world/actor/player/persona/PieceType.h"
15#include "mc/world/actor/player/persona/ProfileType.h"
22class IStoreCatalogItem;
28namespace mce {
class Color; }
29namespace mce {
class UUID; }
32namespace persona::color {
class ColorInfo; }
38 using ColorInfo = ::persona::color::ColorInfo;
43 ::ll::TypedStorage<8, 8, ::IMinecraftGame&> mMinecraft;
44 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
45 ::ll::TypedStorage<8, 8, ::PersonaClient&> mSkinRepoClientInterface;
46 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
47 ::ll::TypedStorage<8, 152, ::PreviewedItemEventInformation> mPreviewedItemInfo;
48 ::ll::TypedStorage<8, 8, int64> mNextPossibleEventTime;
49 ::ll::TypedStorage<1, 1, bool> mIsCurrentSkinPackOwned;
50 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
51 ::ll::TypedStorage<8, 40, ::persona::PersonaCharacterHandle> mActiveCharacterHandle;
52 ::ll::TypedStorage<1, 1, bool> mActiveCharacterInitialized;
53 ::ll::TypedStorage<1, 1, bool> mWaitingForNewPersona;
58 PersonaScreenModelCommon& operator=(PersonaScreenModelCommon
const&);
59 PersonaScreenModelCommon(PersonaScreenModelCommon
const&);
60 PersonaScreenModelCommon();
65 virtual ~PersonaScreenModelCommon();
67 virtual void update(::ui::DirtyFlag& dirtyFlags);
69 virtual void updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
75 MCAPI PersonaScreenModelCommon(
76 ::IMinecraftGame& minecraft,
77 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client
80 MCAPI ::std::function<void(
bool)> _getNormalPersonaChangedCallback(
81 ::persona::PersonaCharacterHandle
const& handle,
82 ::std::function<
void(
bool)> finalCallback
85 MCAPI
void attemptCopyValidActiveAppearanceToCurrentCharacter(::std::function<
void(
bool)> callback);
87 MCAPI
void changePersonaArmSize(
88 ::persona::PersonaCharacterHandle
const& handle,
89 ::persona::ArmSize::Type
const& armSize,
90 ::std::function<
void(
bool)> callback
93 MCAPI
void changePersonaEmote(
94 ::persona::PersonaCharacterHandle
const& handle,
95 ::std::string
const& pieceId,
96 ::persona::FreeItemState
const& freeItemState,
98 ::std::function<
void(
bool)> callback
101 MCAPI
void changePersonaHeight(
102 ::persona::PersonaCharacterHandle
const& handle,
103 ::persona::BodySize::Type
const& bodyType,
104 ::std::function<
void(
bool)> callback
107 MCAPI
void changePersonaPiece(
108 ::persona::PersonaCharacterHandle
const& handle,
109 ::persona::PieceType pieceType,
110 ::mce::UUID
const& pieceId,
111 ::std::string
const& productId,
112 ::persona::FreeItemState
const& freeItemState,
113 ::std::function<
void(
bool)> callback,
114 ::persona::PieceSide side
117 MCAPI
void changePersonaTintColor(
118 ::persona::PersonaCharacterHandle
const& handle,
119 ::persona::PieceType pieceType,
120 ::mce::Color
const& color,
122 ::std::function<
void(
bool)> callback
125 MCAPI
void changePersonaTintColors(
126 ::persona::PersonaCharacterHandle
const& handle,
127 ::persona::PieceType pieceType,
128 ::std::vector<::persona::color::ColorInfo>
const& tintColors,
129 ::std::function<
void(
bool)> callback
132 MCAPI
bool createActivePersonaFromCurrentCharacter(::std::function<
void(
bool)> callback);
134 MCAPI
void fireEventPersonaAvatarUpdated(::PersonaAppearance
const& oldAppearance,
bool isBeingDeleted);
136 MCAPI
void fireEventPersonaGeneralError(::persona::PersonaError errorType)
const;
138 MCFOLD ::PersonaCharacter
const& getActiveCharacter()
const;
140 MCFOLD ::PersonaCharacter& getActiveCharacter();
142 MCFOLD ::persona::PersonaCharacterHandle& getActiveCharacterHandle();
144 MCFOLD ::SkinHandle
const& getActiveCharacterSkinHandle()
const;
146 MCFOLD ::PersonaCharacter& getCurrentCharacter();
148 MCFOLD ::persona::PersonaCharacterHandle getCurrentCharacterHandle()
const;
150 MCFOLD ::SkinHandle
const& getCurrentCharacterSkinHandle()
const;
153 getEmoteFileSystemFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
155 MCAPI ::persona::PieceOfferWrapper
156 getEmotePieceOfferFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
159 getEmoteThumbnailPathFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
161 MCAPI ::std::string getEmoteTitleFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
163 MCAPI ::PersonaCharacter& getPersonaCharacter(::persona::ProfileType profileType);
165 MCAPI ::SkinHandle getPersonaClassicSkinHandle(::persona::PersonaCharacterHandle
const& handle);
167 MCAPI
int getPersonaFilledSlotsCount()
const;
169 MCAPI ::SkinHandle
const& getPersonaHandleFromSlot(
int slotIndex);
171 MCAPI ::PersonaPiece
const& getPersonaPiece(::std::string
const& pieceId)
const;
173 MCAPI ::SkinHandle getPersonaSkinHandle(::persona::PersonaCharacterHandle
const& handle);
175 MCAPI ::persona::ProfileType getPersonaType(::persona::PersonaCharacterHandle
const& handle);
177 MCAPI ::persona::ProfileType getSelectedPersonaSkinSlot()
const;
179 MCAPI ::PersonaCharacter& getSelectedSlotCharacter();
182 getTintColor(::persona::PersonaCharacterHandle
const& handle, ::persona::PieceType type,
int channel);
184 MCAPI
void invalidateActiveCharacter();
186 MCFOLD
bool isActivePersonaInitialized()
const;
188 MCAPI
bool isBuiltInPackId(::mce::UUID
const&
id)
const;
190 MCAPI
bool isEmoteSlotSetOnCurrentAppearance(
int emoteWheelSlot);
192 MCAPI
bool isPieceOwned(::IStoreCatalogItem
const& offer);
194 MCAPI
bool isValidAndOwnedAppearance(::PersonaAppearance
const& appearance)
const;
196 MCAPI
void removeAllPersonaEmotes(::persona::PersonaCharacterHandle
const& handle);
198 MCAPI
void removeCurrentPersonaSlot();
200 MCAPI
void removePieceByType(
201 ::persona::PersonaCharacterHandle
const& handle,
202 ::persona::PieceType
const& pieceTypeToRemove,
203 ::std::function<
void(
bool)> callback,
204 ::persona::PieceSide side
208 revertPersona(::persona::PersonaCharacterHandle
const& characterHandle, ::std::function<
void(
bool)> callback);
211 revertPersonaPiece(::persona::PersonaCharacterHandle
const& handle, ::persona::PieceType
const& typeToRevert);
213 MCAPI
void saveCurrentCharacterPersona();
215 MCAPI
void savePersona(::persona::PersonaCharacterHandle
const& characterHandle);
217 MCAPI
bool selectNextPersonaSkinSlot();
219 MCAPI
bool selectPersonaSlot(
int personaSlotToSelectOffset);
221 MCAPI
bool selectPreviousPersonaSkinSlot();
223 MCAPI
void updateClassicSkinCape(::persona::PersonaCharacterHandle
const& handle);
225 MCAPI
void updatePersonaWithNewAppearance(
226 ::PersonaAppearance
const& newAppearance,
227 ::persona::PersonaCharacterHandle
const& handle,
228 ::std::function<
void(
bool)> callback
231 MCAPI
void updatePreviewedItem(::PreviewedItemEventInformation previewedItemEventInfo);
237 MCAPI static ::std::vector<::mce::UUID>
const& mBuiltInSkinPackIds();
243 MCAPI
void* $ctor(::IMinecraftGame& minecraft, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client);
255 MCAPI
void $update(::ui::DirtyFlag& dirtyFlags);
257 MCAPI
void $updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:138
Definition IMinecraftGame.h:5
Definition PersonaAppearance.h:5
Definition PersonaClient.h:5
Definition PersonaPiece.h:20
Definition PersonaScreenModelCommon.h:5
static MCAPI void ** $vftable()
Definition SkinHandle.h:5
Definition PieceOfferWrapper.h:7
Definition ColorInfo.h:12
Definition PersonaCharacter.h:5
Definition FreeItemState.h:7