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/PersonaCharacterHandle.h"
10#include "mc/world/actor/player/persona/PersonaError.h"
11#include "mc/world/actor/player/persona/PieceSide.h"
12#include "mc/world/actor/player/persona/PieceType.h"
22namespace mce {
class UUID; }
25namespace persona::color {
class ColorInfo; }
31 using ColorInfo = ::persona::color::ColorInfo;
36 ::ll::TypedStorage<8, 8, ::IMinecraftGame&> mMinecraft;
37 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
38 ::ll::TypedStorage<8, 8, ::SkinRepositoryClientInterface&> mSkinRepoClientInterface;
39 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
40 ::ll::TypedStorage<8, 152, ::PreviewedItemEventInformation> mPreviewedItemInfo;
41 ::ll::TypedStorage<8, 8, int64> mNextPossibleEventTime;
42 ::ll::TypedStorage<1, 1, bool> mIsCurrentSkinPackOwned;
43 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
44 ::ll::TypedStorage<8, 40, ::persona::PersonaCharacterHandle> mActiveCharacterHandle;
45 ::ll::TypedStorage<1, 1, bool> mActiveCharacterInitialized;
46 ::ll::TypedStorage<1, 1, bool> mWaitingForNewPersona;
51 PersonaScreenModelCommon& operator=(PersonaScreenModelCommon
const&);
52 PersonaScreenModelCommon(PersonaScreenModelCommon
const&);
53 PersonaScreenModelCommon();
58 virtual ~PersonaScreenModelCommon();
60 virtual void update(::ui::DirtyFlag& dirtyFlags);
62 virtual void updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
68 MCAPI PersonaScreenModelCommon(
69 ::IMinecraftGame& minecraft,
70 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client
73 MCAPI ::std::function<void(
bool)> _getNormalPersonaChangedCallback(
74 ::persona::PersonaCharacterHandle
const& handle,
75 ::std::function<
void(
bool)> finalCallback
78 MCAPI
void attemptCopyValidActiveAppearanceToCurrentCharacter(::std::function<
void(
bool)> callback);
80 MCAPI
void changePersonaEmote(
81 ::persona::PersonaCharacterHandle
const& handle,
82 ::std::string
const& pieceId,
83 ::persona::FreeItemState
const& freeItemState,
85 ::std::function<
void(
bool)> callback
88 MCAPI
void changePersonaPiece(
89 ::persona::PersonaCharacterHandle
const& handle,
90 ::persona::PieceType pieceType,
91 ::mce::UUID
const& pieceId,
92 ::std::string
const& productId,
93 ::persona::FreeItemState
const& freeItemState,
94 ::std::function<
void(
bool)> callback,
95 ::persona::PieceSide side
98 MCAPI
bool createActivePersonaFromCurrentCharacter(::std::function<
void(
bool)> callback);
100 MCAPI
void fireEventPersonaAvatarUpdated(::PersonaAppearance
const& oldAppearance,
bool isBeingDeleted);
102 MCAPI
void fireEventPersonaGeneralError(::persona::PersonaError errorType)
const;
104 MCAPI ::persona::PieceOfferWrapper
105 getEmotePieceOfferFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
107 MCAPI ::SkinHandle getPersonaClassicSkinHandle(::persona::PersonaCharacterHandle
const& handle);
109 MCAPI ::SkinHandle
const& getPersonaHandleFromSlot(
int slotIndex);
111 MCAPI ::SkinHandle getPersonaSkinHandle(::persona::PersonaCharacterHandle
const& handle);
113 MCAPI
void invalidateActiveCharacter();
115 MCAPI
bool isValidAndOwnedAppearance(::PersonaAppearance
const& appearance)
const;
118 revertPersona(::persona::PersonaCharacterHandle
const& characterHandle, ::std::function<
void()> callback);
120 MCAPI
void saveCurrentCharacterPersona();
122 MCAPI
void savePersona(::persona::PersonaCharacterHandle
const& characterHandle);
124 MCAPI
void updatePersonaWithNewAppearance(
125 ::PersonaAppearance
const& newAppearance,
126 ::persona::PersonaCharacterHandle
const& handle,
127 ::std::function<
void(
bool)> callback
130 MCAPI
void updatePreviewedItem(::PreviewedItemEventInformation previewedItemEventInfo);
136 MCAPI static ::std::vector<::mce::UUID>
const& mBuiltInSkinPackIds();
142 MCAPI
void* $ctor(::IMinecraftGame& minecraft, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client);
154 MCAPI
void $update(::ui::DirtyFlag& dirtyFlags);
156 MCAPI
void $updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:134
Definition IMinecraftGame.h:5
Definition PersonaAppearance.h:5
Definition PersonaScreenModelCommon.h:5
static MCAPI void ** $vftable()
Definition SkinHandle.h:5
Definition SkinRepositoryClientInterface.h:5
Definition PieceOfferWrapper.h:7
Definition FreeItemState.h:7