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/deps/shared_types/persona/ArmSizeType.h"
10#include "mc/deps/shared_types/persona/BodySizeType.h"
11#include "mc/deps/shared_types/persona/PieceSide.h"
12#include "mc/deps/shared_types/persona/PieceType.h"
13#include "mc/world/actor/player/persona/PersonaCharacterHandle.h"
23namespace mce {
class Color; }
24namespace mce {
class UUID; }
27namespace persona::color {
class ColorInfo; }
33 using ColorInfo = ::persona::color::ColorInfo;
38 ::ll::TypedStorage<8, 8, ::IMinecraftGame&> mMinecraft;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
40 ::ll::TypedStorage<8, 8, ::PersonaClient&> mSkinRepoClientInterface;
41 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
42 ::ll::TypedStorage<8, 152, ::PreviewedItemEventInformation> mPreviewedItemInfo;
43 ::ll::TypedStorage<8, 8, int64> mNextPossibleEventTime;
44 ::ll::TypedStorage<1, 1, bool> mIsCurrentSkinPackOwned;
45 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
46 ::ll::TypedStorage<8, 40, ::persona::PersonaCharacterHandle> mActiveCharacterHandle;
47 ::ll::TypedStorage<1, 1, bool> mActiveCharacterInitialized;
48 ::ll::TypedStorage<1, 1, bool> mWaitingForNewPersona;
53 PersonaScreenModelCommon& operator=(PersonaScreenModelCommon
const&);
54 PersonaScreenModelCommon(PersonaScreenModelCommon
const&);
55 PersonaScreenModelCommon();
60 virtual ~PersonaScreenModelCommon() =
default;
62 virtual void update(::ui::DirtyFlag& dirtyFlags);
64 virtual void updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
70 MCAPI PersonaScreenModelCommon(
71 ::IMinecraftGame& minecraft,
72 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client
75 MCAPI ::std::function<void(
bool)> _getNormalPersonaChangedCallback(
76 ::persona::PersonaCharacterHandle
const& handle,
77 ::std::function<
void(
bool)> finalCallback
80 MCAPI
void attemptCopyValidActiveAppearanceToCurrentCharacter(::std::function<
void(
bool)> callback);
82 MCAPI
void changePersonaArmSize(
83 ::persona::PersonaCharacterHandle
const& handle,
84 ::SharedTypes::persona::ArmSizeType
const& armSize,
85 ::std::function<
void(
bool)> callback
88 MCAPI
void changePersonaEmote(
89 ::persona::PersonaCharacterHandle
const& handle,
90 ::std::string
const& pieceId,
91 ::persona::FreeItemState
const& freeItemState,
93 ::std::function<
void(
bool)> callback
96 MCAPI
void changePersonaHeight(
97 ::persona::PersonaCharacterHandle
const& handle,
98 ::SharedTypes::persona::BodySizeType
const& bodyType,
99 ::std::function<
void(
bool)> callback
102 MCAPI
void changePersonaPiece(
103 ::persona::PersonaCharacterHandle
const& handle,
104 ::SharedTypes::persona::PieceType pieceType,
105 ::mce::UUID
const& pieceId,
106 ::std::string
const& productId,
107 ::persona::FreeItemState
const& freeItemState,
108 ::std::function<
void(
bool)> callback,
109 ::SharedTypes::persona::PieceSide side
112 MCAPI
void changePersonaTintColor(
113 ::persona::PersonaCharacterHandle
const& handle,
114 ::SharedTypes::persona::PieceType pieceType,
115 ::mce::Color
const& color,
117 ::std::function<
void(
bool)> callback
120 MCAPI
void changePersonaTintColors(
121 ::persona::PersonaCharacterHandle
const& handle,
122 ::SharedTypes::persona::PieceType pieceType,
123 ::std::vector<::persona::color::ColorInfo>
const& tintColors,
124 ::std::function<
void(
bool)> callback
127 MCAPI
bool createActivePersonaFromCurrentCharacter(::std::function<
void(
bool)> callback);
129 MCAPI
void fireEventPersonaAvatarUpdated(::PersonaAppearance
const& oldAppearance,
bool isBeingDeleted);
131 MCAPI ::persona::PieceOfferWrapper
132 getEmotePieceOfferFromAppearance(::persona::PersonaCharacterHandle
const& handle,
int emoteIndex);
134 MCAPI ::SkinHandle getPersonaClassicSkinHandle(::persona::PersonaCharacterHandle
const& handle);
136 MCAPI ::SkinHandle getPersonaSkinHandle(::persona::PersonaCharacterHandle
const& handle);
139 getTintColor(::persona::PersonaCharacterHandle
const& handle, ::SharedTypes::persona::PieceType type,
int channel);
141 MCAPI
void removePieceByType(
142 ::persona::PersonaCharacterHandle
const& handle,
143 ::SharedTypes::persona::PieceType
const& pieceTypeToRemove,
144 ::std::function<
void(
bool)> callback,
145 ::SharedTypes::persona::PieceSide side
149 revertPersona(::persona::PersonaCharacterHandle
const& characterHandle, ::std::function<
void(
bool)> callback);
151 MCAPI
void saveCurrentCharacterPersona();
153 MCAPI
void savePersona(::persona::PersonaCharacterHandle
const& characterHandle);
155 MCAPI
void updatePreviewedItem(::PreviewedItemEventInformation previewedItemEventInfo);
161 MCAPI static ::std::vector<::mce::UUID>
const& mBuiltInSkinPackIds();
167 MCAPI
void* $ctor(::IMinecraftGame& minecraft, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& client);
173 MCAPI
void $update(::ui::DirtyFlag& dirtyFlags);
175 MCAPI
void $updateSkin(::persona::PersonaCharacterHandle
const& characterHandle, ::SkinHandle handle);
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:147
Definition IMinecraftGame.h:5
Definition PersonaAppearance.h:5
Definition PersonaClient.h:5
Definition PersonaScreenModelCommon.h:5
Definition SkinHandle.h:5
Definition PieceOfferWrapper.h:7
Definition FreeItemState.h:7