LeviLamina
Loading...
Searching...
No Matches
PersonaScreenModelCommon.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/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"
13
14// auto generated forward declare list
15// clang-format off
16class IClientInstance;
18class IMinecraftGame;
20class SkinHandle;
22namespace mce { class UUID; }
23namespace persona { class PieceOfferWrapper; }
24namespace persona { struct FreeItemState; }
25namespace persona::color { class ColorInfo; }
26// clang-format on
27
29public:
30 // PersonaScreenModelCommon inner types define
31 using ColorInfo = ::persona::color::ColorInfo;
32
33public:
34 // member variables
35 // NOLINTBEGIN
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;
47 // NOLINTEND
48
49public:
50 // prevent constructor by default
51 PersonaScreenModelCommon& operator=(PersonaScreenModelCommon const&);
52 PersonaScreenModelCommon(PersonaScreenModelCommon const&);
53 PersonaScreenModelCommon();
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ~PersonaScreenModelCommon();
59
60 virtual void update(::ui::DirtyFlag& dirtyFlags);
61
62 virtual void updateSkin(::persona::PersonaCharacterHandle const& characterHandle, ::SkinHandle handle);
63 // NOLINTEND
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI PersonaScreenModelCommon(
69 ::IMinecraftGame& minecraft,
70 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client
71 );
72
73 MCAPI ::std::function<void(bool)> _getNormalPersonaChangedCallback(
74 ::persona::PersonaCharacterHandle const& handle,
75 ::std::function<void(bool)> finalCallback
76 );
77
78 MCAPI void attemptCopyValidActiveAppearanceToCurrentCharacter(::std::function<void(bool)> callback);
79
80 MCAPI void changePersonaEmote(
81 ::persona::PersonaCharacterHandle const& handle,
82 ::std::string const& pieceId,
83 ::persona::FreeItemState const& freeItemState,
84 int emoteWheelSlot,
85 ::std::function<void(bool)> callback
86 );
87
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
96 );
97
98 MCAPI bool createActivePersonaFromCurrentCharacter(::std::function<void(bool)> callback);
99
100 MCAPI void fireEventPersonaAvatarUpdated(::PersonaAppearance const& oldAppearance, bool isBeingDeleted);
101
102 MCAPI void fireEventPersonaGeneralError(::persona::PersonaError errorType) const;
103
104 MCAPI ::persona::PieceOfferWrapper
105 getEmotePieceOfferFromAppearance(::persona::PersonaCharacterHandle const& handle, int emoteIndex);
106
107 MCAPI ::SkinHandle getPersonaClassicSkinHandle(::persona::PersonaCharacterHandle const& handle);
108
109 MCAPI ::SkinHandle const& getPersonaHandleFromSlot(int slotIndex);
110
111 MCAPI ::SkinHandle getPersonaSkinHandle(::persona::PersonaCharacterHandle const& handle);
112
113 MCAPI void invalidateActiveCharacter();
114
115 MCAPI bool isValidAndOwnedAppearance(::PersonaAppearance const& appearance) const;
116
117 MCAPI void
118 revertPersona(::persona::PersonaCharacterHandle const& characterHandle, ::std::function<void()> callback);
119
120 MCAPI void saveCurrentCharacterPersona();
121
122 MCAPI void savePersona(::persona::PersonaCharacterHandle const& characterHandle);
123
124 MCAPI void updatePersonaWithNewAppearance(
125 ::PersonaAppearance const& newAppearance,
126 ::persona::PersonaCharacterHandle const& handle,
127 ::std::function<void(bool)> callback
128 ) const;
129
130 MCAPI void updatePreviewedItem(::PreviewedItemEventInformation previewedItemEventInfo);
131 // NOLINTEND
132
133public:
134 // static variables
135 // NOLINTBEGIN
136 MCAPI static ::std::vector<::mce::UUID> const& mBuiltInSkinPackIds();
137 // NOLINTEND
138
139public:
140 // constructor thunks
141 // NOLINTBEGIN
142 MCAPI void* $ctor(::IMinecraftGame& minecraft, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client);
143 // NOLINTEND
144
145public:
146 // destructor thunk
147 // NOLINTBEGIN
148 MCAPI void $dtor();
149 // NOLINTEND
150
151public:
152 // virtual function thunks
153 // NOLINTBEGIN
154 MCAPI void $update(::ui::DirtyFlag& dirtyFlags);
155
156 MCAPI void $updateSkin(::persona::PersonaCharacterHandle const& characterHandle, ::SkinHandle handle);
157 // NOLINTEND
158
159public:
160 // vftables
161 // NOLINTBEGIN
162 MCNAPI static void** $vftable();
163 // NOLINTEND
164};
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 UUID.h:7
Definition PieceOfferWrapper.h:7
Definition ColorInfo.h:7
Definition FreeItemState.h:7