Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
PersonaRepository.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/persona/IPersonaPieceProvider.h"
7#include "mc/client/persona/IPersonaRepository.h"
8#include "mc/client/persona/character/ICharacterCollection.h"
9#include "mc/client/persona/character/IPersonaCharacterEditor.h"
10#include "mc/client/persona/defaults/DefaultAppearanceManager.h"
11#include "mc/client/persona/piece_loading/IPersonaPiecePackLoader.h"
12#include "mc/deps/core/file/PathBuffer.h"
13#include "mc/deps/core/threading/Async.h"
14#include "mc/deps/core/threading/AsyncPromise.h"
15#include "mc/deps/core/utility/NonOwnerPointer.h"
16#include "mc/deps/shared_types/persona/ArmSizeType.h"
17#include "mc/deps/shared_types/persona/BodySizeType.h"
18#include "mc/deps/shared_types/persona/PieceSide.h"
19#include "mc/deps/shared_types/persona/PieceType.h"
20#include "mc/platform/UUID.h"
21#include "mc/world/actor/player/persona/PersonaError.h"
22#include "mc/world/actor/player/persona/ProfileType.h"
23
24// auto generated forward declare list
25// clang-format off
28class DateManager;
29class DlcBatchModel;
30class GeometryGroup;
34class IEntitlementManager;
36class IOptionRegistry;
41class ISkinRepository;
42class Pack;
47class PersonaPiece;
53class SemVersion;
54class SkinHandle;
55class StoreCatalogRepository;
56class TaskGroup;
57class TintMapColor;
58struct PersonaCharacter;
60namespace Json { class Value; }
61namespace Social { class XboxLiveUser; }
62namespace mce { class Color; }
63namespace persona { class AchievementOfferCollectionManager; }
64namespace persona { class CharacterCollection; }
65namespace persona { class PendingAppearance; }
66namespace persona { class PersonaCharacterHandleArray; }
67namespace persona { class PieceHandle; }
68namespace persona { class PieceOfferWrapper; }
69namespace persona { struct DefaultAppearance; }
70namespace persona { struct FreeItemState; }
71namespace persona { struct PersonaCharacterHandle; }
72namespace persona { struct PieceToChange; }
73namespace persona::color { class ColorInfo; }
74namespace persona::debug { class PersonaDebugApi; }
75namespace splitscreen { class SplitscreenJsonAppearanceManager; }
76// clang-format on
77
83public:
84 // PersonaRepository inner types declare
85 // clang-format off
86 struct StartupParams;
88 // clang-format on
89
90 // PersonaRepository inner types define
91 struct StartupParams {
92 public:
93 // member variables
94 // NOLINTBEGIN
95 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mPersonaDefaultPath;
96 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mPersonaPremiumPath;
97 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mPersonaPremiumDevPath;
98 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mDevelopmentPacksPath;
99 ::ll::TypedStorage<8, 24, ::std::vector<::Core::PathBuffer<::std::string>>> mLegacyPersonaPremiumPaths;
100 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IPackSourceFactory>> mSourceFactory;
101 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IPackManifestFactory>> mManifestFactory;
102 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>> mKeyProvider;
103 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ActorAnimationGroup>> mActorAnimationGroup;
104 // NOLINTEND
105
106 public:
107 // member functions
108 // NOLINTBEGIN
110 // NOLINTEND
111
112 public:
113 // destructor thunk
114 // NOLINTBEGIN
115 MCNAPI void $dtor();
116 // NOLINTEND
117 };
118
120 public:
121 // member variables
122 // NOLINTBEGIN
123 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mPieceIds;
124 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::DlcBatchModel>> mDlcBatch;
125 // NOLINTEND
126 };
127
128public:
129 // member variables
130 // NOLINTBEGIN
131 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IPersonaImageProvider>> mImageProvider;
132 ::ll::TypedStorage<8, 16, ::gsl::not_null<::std::shared_ptr<::ISkinRepository>>> mSkinRepository;
133 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager>> mResourceLoadManager;
134 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing>> mEventing;
135 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::StoreCatalogRepository>> mStoreCatalog;
136 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IContentAcquisition>> mContentAcquisition;
137 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mTaskGroup;
138 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaPiecePackLoader>>> mPiecePackLoader;
139 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaGeometryBuilder>>> mGeometryBuilder;
140 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaTextureBuilder>>> mTextureBuilder;
141 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaOfflineCache>>> mOfflineCache;
142 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaSkinRegistrar>>> mSkinRegistrar;
143 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::persona::CharacterCollection>>> mCharacterRepository;
144 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PersonaCharacterEditor>>> mCharacterEditor;
145 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::persona::debug::PersonaDebugApi>> mDebugApi;
146 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::splitscreen::SplitscreenJsonAppearanceManager>>
147 mSplitscreenAppearanceManager;
148 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::persona::AchievementOfferCollectionManager>>
149 mAchievementOfferCollectionManager;
150 ::ll::TypedStorage<8, 48, ::persona::DefaultAppearanceManager> mPersonaDefaults;
151 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::persona::PendingAppearance>> mLoadingPersonaAppearances;
152 ::ll::TypedStorage<8, 80, ::std::mutex> mLoadingPersonaAppearancesLock;
153 ::ll::TypedStorage<8, 24, ::std::vector<::PersonaRepository::PendingPieceDownloadBatch>>
154 mPendingPieceDownloadBatches;
155 ::ll::TypedStorage<8, 64, ::std::unordered_set<::mce::UUID>> mAllQueuedPieceDownloads;
156 ::ll::TypedStorage<8, 80, ::std::mutex> mEmoteParseLock;
157 ::ll::TypedStorage<8, 24, ::std::vector<uint>> mGeneralErrorQueue;
158 ::ll::TypedStorage<8, 8, int64> mGeneralErrorTimer;
159 ::ll::TypedStorage<1, 1, bool> mInitialized;
160 ::ll::TypedStorage<8, 24, ::Bedrock::Threading::AsyncPromise<void>> mInitPromise;
161 // NOLINTEND
162
163public:
164 // prevent constructor by default
166
167public:
168 // virtual functions
169 // NOLINTBEGIN
170 virtual ~PersonaRepository() /*override*/ = default;
171
172 virtual bool isInitialized() const /*override*/;
173
174 virtual bool isOfferLoading(::persona::PieceOfferWrapper const& personaOffer) const /*override*/;
175
176 virtual bool isLoadingAppearances(::persona::PersonaCharacterHandleArray const& handles) const /*override*/;
177
178 virtual bool isLoadingAppearance(::persona::PersonaCharacterHandle const& handle) const /*override*/;
179
180 virtual ::persona::PersonaCharacterHandle createPersonaOnUser(
181 ::persona::ProfileType profileType,
182 ::PersonaAppearance const& appearance,
183 ::std::string const& playFabId,
184 ::std::function<void(::std::string const&)> callback
185 ) /*override*/;
186
187 virtual ::persona::PersonaCharacterHandle createAStartingPersonaOnUser(
188 ::persona::ProfileType profileType,
189 ::std::string const& playFabId,
190 int defaultIndexOverride,
191 ::std::function<void(::std::string const&)> callback
192 ) /*override*/;
193
194 virtual ::PersonaAppearance createAppearancefromData(
195 ::std::vector<::persona::PieceHandle> const& personaPieces,
196 ::std::unordered_map<::SharedTypes::persona::PieceType, ::TintMapColor> const& tintMap,
197 ::mce::Color const& skinColor,
198 ::SharedTypes::persona::ArmSizeType const& armSize
199 ) /*override*/;
200
201 virtual ::SkinHandle createPersona(
202 ::persona::ProfileType profileType,
203 ::PersonaAppearance const& newAppearance,
204 ::std::string const& playFabId,
205 ::std::function<void(::std::string const&)> callback
206 ) /*override*/;
207
208 virtual ::SkinHandle createAStartingPersona(
209 ::persona::ProfileType profileType,
210 ::std::string const& playFabId,
211 uint const defaultAppearanceIndex,
212 ::std::function<void(::std::string const&)> callback
213 ) /*override*/;
214
215 virtual ::SkinHandle createAStartingPersona(
216 ::persona::ProfileType profileType,
217 ::mce::UUID const& defaultCharacterId,
218 ::std::string const& playFabId,
219 ::std::function<void(::std::string const&)> callback
220 ) /*override*/;
221
222 virtual void tryToReloadPersona(
223 ::persona::PersonaCharacterHandle const& handle,
224 ::PersonaAppearance const& newAppearance,
225 ::std::function<void(::std::string const&)> callback
226 ) /*override*/;
227
228 virtual bool isAppearanceDefault(::PersonaAppearance const& appearance) const /*override*/;
229
230 virtual void saveOfflinePersonaCatalogCache() /*override*/;
231
232 virtual void loadOfflinePersonaCatalogCache() /*override*/;
233
234 virtual void registerPersonaSkinsForCharacter(::PersonaCharacter& character) /*override*/;
235
236 virtual ::persona::DefaultAppearance const& getDefaultAppearance(uint const& defaultIndexOverride) /*override*/;
237
238 virtual ::persona::DefaultAppearanceManager const& getDefaultAppearanceManager() const /*override*/;
239
240 virtual void
241 createSplitscreenUser(::std::string xuid, int splitscreenID, ::Json::Value&& appearanceData) /*override*/;
242
243 virtual ::PersonaAppearance const
244 getSplitscreenAppearance(::std::string const& xuid, int const controllerID) /*override*/;
245
246 virtual void saveSplitscreenAppearanceData(
247 ::std::string const& xuid,
248 int splitscreenID,
249 ::Json::Value&& appearanceData
250 ) /*override*/;
251
252 virtual void loadDefaultCharactersIfNeeded() /*override*/;
253
254 virtual void addToOfflinePersonaCatalogMap(
255 ::persona::PieceOfferWrapper const& personaOffer,
256 ::std::string const playfabId
257 ) /*override*/;
258
259 virtual ::std::vector<::std::string> const
260 getAllPiecesFromOfflineMapForPlayfabId(::std::string const& playfabId) const /*override*/;
261
262 virtual void loadOfflinePieceMapIntoStoreCatalog(::DateManager const& dateManager) /*override*/;
263
264 virtual void queuePersonaGeneralError(::persona::PersonaError errorType) /*override*/;
265
266 virtual void downloadAndLoadPieces(
267 ::std::vector<::std::string> const& productIds,
268 ::std::vector<::std::string> const& pieceIds
269 ) /*override*/;
270
271 virtual void
272 update(bool inOrStartingGameplay, ::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup) /*override*/;
273
274 virtual void queueContentReload(::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup) /*override*/;
275
276 virtual ::PersonaCharacter& getCharacter(::std::string const& characterName) /*override*/;
277
278 virtual ::PersonaCharacter& getCharacter(::persona::PersonaCharacterHandle const& handle) /*override*/;
279
280 virtual void removeCharacter(::std::string const& characterName) /*override*/;
281
282 virtual void removeCharacter(::persona::PersonaCharacterHandle const& handle) /*override*/;
283
284 virtual void changePiece(
285 ::persona::PersonaCharacterHandle const& currentCharacter,
286 ::SharedTypes::persona::PieceType const pieceType,
287 ::mce::UUID const& pieceId,
288 ::std::string const& productId,
289 ::persona::FreeItemState const& freeItemState,
290 ::SharedTypes::persona::PieceSide side,
291 ::std::function<void(bool)> callback
292 ) /*override*/;
293
294 virtual void changePieces(
295 ::persona::PersonaCharacterHandle const& currentCharacter,
296 ::std::vector<::persona::PieceToChange> const& pieces,
297 ::std::function<void(bool)> callback
298 ) /*override*/;
299
300 virtual void removePieceByType(
301 ::persona::PersonaCharacterHandle const& currentCharacter,
302 ::SharedTypes::persona::PieceType const pieceTypeToRemove,
303 ::SharedTypes::persona::PieceSide const side,
304 ::std::function<void(bool)> callback
305 ) /*override*/;
306
307 virtual void changeEmote(
308 ::persona::PersonaCharacterHandle const& currentCharacter,
309 ::std::string const& emotePieceId,
310 ::persona::FreeItemState const& freeItemState,
311 int emoteWheelSlot,
312 ::std::function<void(bool)> callback
313 ) /*override*/;
314
315 virtual void
316 removeEmote(::persona::PersonaCharacterHandle const& currentCharacter, int emoteWheelSlot) /*override*/;
317
318 virtual void removeAllEmotes(::persona::PersonaCharacterHandle const& currentCharacterHandle) /*override*/;
319
320 virtual void removeEmotesWithId(
321 ::persona::PersonaCharacterHandle const& currentCharacter,
322 ::std::string const& emoteId
323 ) /*override*/;
324
325 virtual void changeClassicSkin(
326 ::persona::PersonaCharacterHandle const& currentCharacter,
327 ::SkinHandle const& handle
328 ) /*override*/;
329
330 virtual void changeArmSize(
331 ::persona::PersonaCharacterHandle const& currentCharacter,
332 ::SharedTypes::persona::ArmSizeType const& armSizeType,
333 ::std::function<void(bool)> callback
334 ) /*override*/;
335
336 virtual void changeHeight(
337 ::persona::PersonaCharacterHandle const& currentCharacter,
338 ::SharedTypes::persona::BodySizeType const& bodyType,
339 ::std::function<void(bool)> callback
340 ) /*override*/;
341
342 virtual void changePersonaTintColor(
343 ::persona::PersonaCharacterHandle const& currentCharacter,
344 ::SharedTypes::persona::PieceType const pieceType,
345 ::mce::Color const& color,
346 ushort channel,
347 ::std::function<void(bool)> callback
348 ) /*override*/;
349
350 virtual void changePersonaTintColors(
351 ::persona::PersonaCharacterHandle const& currentCharacter,
352 ::SharedTypes::persona::PieceType const pieceType,
353 ::std::vector<::persona::color::ColorInfo> const& tintColors,
354 ::std::function<void(bool)> callback
355 ) /*override*/;
356
357 virtual void savePersonaItems(::persona::PersonaCharacterHandle const& characterHandle) /*override*/;
358
359 virtual void revertPersona(
360 ::persona::PersonaCharacterHandle const& currentCharacter,
361 ::std::function<void(bool)> callback
362 ) /*override*/;
363
364 virtual void revertPersonaPiece(
365 ::persona::PersonaCharacterHandle const& handle,
366 ::SharedTypes::persona::PieceType const& pieceTypeToRevert
367 ) /*override*/;
368
369 virtual bool doesCharacterHavePieceOfTypeX(
370 ::persona::PersonaCharacterHandle const& currentCharacter,
371 ::SharedTypes::persona::PieceType const& pieceType
372 ) /*override*/;
373
374 virtual bool isPieceOwned(::persona::PieceHandle const& item) /*override*/;
375
376 virtual void updatePersonaWithNewAppearance(
377 ::PersonaAppearance const& newAppearance,
378 ::PersonaCharacter& character,
379 ::std::function<void(bool)> callback
380 ) /*override*/;
381
382 virtual ::PersonaPiece const&
383 getPieceFromClassicSkin(::std::string const& skinSerializedName, bool const reportFailure) const /*override*/;
384
385 virtual ::persona::PieceHandle getPieceHandle(::std::string const& pieceId) const /*override*/;
386
387 virtual bool isPieceLoaded(::mce::UUID const& pieceId) const /*override*/;
388
389 virtual bool isKnownPersonaPiece(::mce::UUID const& pieceId) const /*override*/;
390
391 virtual bool isKnownPersonaPieceUnloaded(::mce::UUID const& pieceId) const /*override*/;
392
393 virtual bool isPersonaPieceLoading(::mce::UUID const& peiceId) const /*override*/;
394
395 virtual bool isPersonaPieceInRepo(::mce::UUID const& pieceId) const /*override*/;
396
397 virtual bool isPersonaPieceInRepo(::std::string const& pieceId) const /*override*/;
398
399 virtual ::PersonaPiece const& getPersonaPieceFromRepo(::std::string const& pieceId) const /*override*/;
400
401 virtual void forEachPersonaPack(::std::function<void(::Pack const&)> const& callback) const /*override*/;
402
403 virtual ::std::vector<::persona::PieceOfferWrapper>
404 getDefaultPieceWrappersOfTypes(::std::vector<::SharedTypes::persona::PieceType> const& sections) const /*override*/;
405
406 virtual ::SemVersion const& getVersionOfKnownPersonaPiecePack(::mce::UUID const& packId) const /*override*/;
407
408 virtual void loadPiecePack(::mce::UUID packId) /*override*/;
409
410 virtual void queueImportOfPersonaPiecePack(::gsl::not_null<::std::shared_ptr<::Pack>> pack) /*override*/;
411
412 virtual ::std::vector<::std::string> const& getPieceIdsByType(::SharedTypes::persona::PieceType type) const
413 /*override*/;
414
415 virtual ::std::shared_ptr<::persona::debug::PersonaDebugApi> getPersonaDebugApi() /*override*/;
416
417 virtual ::PersonaCharacter&
418 _addCharacter(::persona::ProfileType profileType, ::std::string const& playFabId) /*override*/;
419 // NOLINTEND
420
421public:
422 // member functions
423 // NOLINTBEGIN
424 MCNAPI PersonaRepository(
425 ::std::unique_ptr<::IPersonaImageProvider> imageProvider,
426 ::std::unique_ptr<::IPersonaRenderResourceProvider> renderResourceProvider,
427 ::std::shared_ptr<::ISkinRepository> skinRepository,
428 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> advancedGraphicsOptions,
429 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
430 ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager> resourcePackManager,
431 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
432 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
433 ::Bedrock::NonOwnerPointer<::TextureHotReloader> textureReloader,
434 ::std::shared_ptr<::GeometryGroup> skinGeometryGroup
435 );
436
437 MCNAPI ::PersonaAppearance _createAppearanceFromJson(::Json::Value const& valueAppearance);
438
439 MCNAPI ::persona::AchievementOfferCollectionManager& _initializeAchievementCollectionOfferManagerIfNeeded(
440 ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> storeRepo,
441 ::Social::XboxLiveUser& xboxLiveUser,
442 ::IOptionRegistry& options
443 );
444
446 ::std::vector<::std::string> const& loadedPieces,
447 ::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup
448 );
449
450 MCNAPI void _queueEmoteParse(::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup);
451
452 MCNAPI void _updatePersona(
453 ::PersonaCharacter& character,
454 ::PersonaAppearance const& newAppearance,
455 ::std::function<void(::std::string const&)> callback
456 );
457
458 MCNAPI ::Bedrock::Threading::Async<void> beginStartupAsyncInit(::PersonaRepository::StartupParams&& startupParams);
459
460 MCNAPI void createSplitScreenAppearanceManager(::std::string const& playFabId);
461
462 MCNAPI ::persona::AchievementOfferCollectionManager&
463 getAchievementOfferCollectionManager(::Social::XboxLiveUser& xboxLiveUser, ::IOptionRegistry& options);
464
466 ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> storeCatalog,
467 ::Bedrock::NotNullNonOwnerPtr<::IContentAcquisition> contentAcquisition,
468 ::Bedrock::NotNullNonOwnerPtr<::ContentCatalogService> contentCatalogService
469 );
470 // NOLINTEND
471
472public:
473 // constructor thunks
474 // NOLINTBEGIN
475 MCNAPI void* $ctor(
476 ::std::unique_ptr<::IPersonaImageProvider> imageProvider,
477 ::std::unique_ptr<::IPersonaRenderResourceProvider> renderResourceProvider,
478 ::std::shared_ptr<::ISkinRepository> skinRepository,
479 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> advancedGraphicsOptions,
480 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
481 ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager> resourcePackManager,
482 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
483 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
484 ::Bedrock::NonOwnerPointer<::TextureHotReloader> textureReloader,
485 ::std::shared_ptr<::GeometryGroup> skinGeometryGroup
486 );
487 // NOLINTEND
488
489public:
490 // virtual function thunks
491 // NOLINTBEGIN
492 MCNAPI bool $isInitialized() const;
493
494 MCNAPI bool $isOfferLoading(::persona::PieceOfferWrapper const& personaOffer) const;
495
496 MCNAPI bool $isLoadingAppearances(::persona::PersonaCharacterHandleArray const& handles) const;
497
498 MCNAPI bool $isLoadingAppearance(::persona::PersonaCharacterHandle const& handle) const;
499
500 MCNAPI ::persona::PersonaCharacterHandle $createPersonaOnUser(
501 ::persona::ProfileType profileType,
502 ::PersonaAppearance const& appearance,
503 ::std::string const& playFabId,
504 ::std::function<void(::std::string const&)> callback
505 );
506
507 MCNAPI ::persona::PersonaCharacterHandle $createAStartingPersonaOnUser(
508 ::persona::ProfileType profileType,
509 ::std::string const& playFabId,
510 int defaultIndexOverride,
511 ::std::function<void(::std::string const&)> callback
512 );
513
515 ::std::vector<::persona::PieceHandle> const& personaPieces,
516 ::std::unordered_map<::SharedTypes::persona::PieceType, ::TintMapColor> const& tintMap,
517 ::mce::Color const& skinColor,
518 ::SharedTypes::persona::ArmSizeType const& armSize
519 );
520
522 ::persona::ProfileType profileType,
523 ::PersonaAppearance const& newAppearance,
524 ::std::string const& playFabId,
525 ::std::function<void(::std::string const&)> callback
526 );
527
529 ::persona::ProfileType profileType,
530 ::std::string const& playFabId,
531 uint const defaultAppearanceIndex,
532 ::std::function<void(::std::string const&)> callback
533 );
534
536 ::persona::ProfileType profileType,
537 ::mce::UUID const& defaultCharacterId,
538 ::std::string const& playFabId,
539 ::std::function<void(::std::string const&)> callback
540 );
541
543 ::persona::PersonaCharacterHandle const& handle,
544 ::PersonaAppearance const& newAppearance,
545 ::std::function<void(::std::string const&)> callback
546 );
547
548 MCNAPI bool $isAppearanceDefault(::PersonaAppearance const& appearance) const;
549
551
553
555
556 MCNAPI ::persona::DefaultAppearance const& $getDefaultAppearance(uint const& defaultIndexOverride);
557
558 MCNAPI ::persona::DefaultAppearanceManager const& $getDefaultAppearanceManager() const;
559
560 MCNAPI void $createSplitscreenUser(::std::string xuid, int splitscreenID, ::Json::Value&& appearanceData);
561
562 MCNAPI ::PersonaAppearance const $getSplitscreenAppearance(::std::string const& xuid, int const controllerID);
563
564 MCNAPI void
565 $saveSplitscreenAppearanceData(::std::string const& xuid, int splitscreenID, ::Json::Value&& appearanceData);
566
568
569 MCNAPI void
570 $addToOfflinePersonaCatalogMap(::persona::PieceOfferWrapper const& personaOffer, ::std::string const playfabId);
571
572 MCNAPI ::std::vector<::std::string> const
573 $getAllPiecesFromOfflineMapForPlayfabId(::std::string const& playfabId) const;
574
575 MCNAPI void $loadOfflinePieceMapIntoStoreCatalog(::DateManager const& dateManager);
576
577 MCNAPI void $queuePersonaGeneralError(::persona::PersonaError errorType);
578
580 ::std::vector<::std::string> const& productIds,
581 ::std::vector<::std::string> const& pieceIds
582 );
583
584 MCNAPI void $update(bool inOrStartingGameplay, ::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup);
585
586 MCNAPI void $queueContentReload(::std::shared_ptr<::ActorAnimationGroup> actorAnimationGroup);
587
588 MCNAPI ::PersonaCharacter& $getCharacter(::std::string const& characterName);
589
590 MCNAPI ::PersonaCharacter& $getCharacter(::persona::PersonaCharacterHandle const& handle);
591
592 MCNAPI void $removeCharacter(::std::string const& characterName);
593
594 MCNAPI void $removeCharacter(::persona::PersonaCharacterHandle const& handle);
595
596 MCNAPI void $changePiece(
597 ::persona::PersonaCharacterHandle const& currentCharacter,
598 ::SharedTypes::persona::PieceType const pieceType,
599 ::mce::UUID const& pieceId,
600 ::std::string const& productId,
601 ::persona::FreeItemState const& freeItemState,
602 ::SharedTypes::persona::PieceSide side,
603 ::std::function<void(bool)> callback
604 );
605
606 MCNAPI void $changePieces(
607 ::persona::PersonaCharacterHandle const& currentCharacter,
608 ::std::vector<::persona::PieceToChange> const& pieces,
609 ::std::function<void(bool)> callback
610 );
611
613 ::persona::PersonaCharacterHandle const& currentCharacter,
614 ::SharedTypes::persona::PieceType const pieceTypeToRemove,
615 ::SharedTypes::persona::PieceSide const side,
616 ::std::function<void(bool)> callback
617 );
618
619 MCNAPI void $changeEmote(
620 ::persona::PersonaCharacterHandle const& currentCharacter,
621 ::std::string const& emotePieceId,
622 ::persona::FreeItemState const& freeItemState,
623 int emoteWheelSlot,
624 ::std::function<void(bool)> callback
625 );
626
627 MCNAPI void $removeEmote(::persona::PersonaCharacterHandle const& currentCharacter, int emoteWheelSlot);
628
629 MCNAPI void $removeAllEmotes(::persona::PersonaCharacterHandle const& currentCharacterHandle);
630
631 MCNAPI void
632 $removeEmotesWithId(::persona::PersonaCharacterHandle const& currentCharacter, ::std::string const& emoteId);
633
634 MCNAPI void
635 $changeClassicSkin(::persona::PersonaCharacterHandle const& currentCharacter, ::SkinHandle const& handle);
636
637 MCNAPI void $changeArmSize(
638 ::persona::PersonaCharacterHandle const& currentCharacter,
639 ::SharedTypes::persona::ArmSizeType const& armSizeType,
640 ::std::function<void(bool)> callback
641 );
642
643 MCNAPI void $changeHeight(
644 ::persona::PersonaCharacterHandle const& currentCharacter,
645 ::SharedTypes::persona::BodySizeType const& bodyType,
646 ::std::function<void(bool)> callback
647 );
648
650 ::persona::PersonaCharacterHandle const& currentCharacter,
651 ::SharedTypes::persona::PieceType const pieceType,
652 ::mce::Color const& color,
653 ushort channel,
654 ::std::function<void(bool)> callback
655 );
656
658 ::persona::PersonaCharacterHandle const& currentCharacter,
659 ::SharedTypes::persona::PieceType const pieceType,
660 ::std::vector<::persona::color::ColorInfo> const& tintColors,
661 ::std::function<void(bool)> callback
662 );
663
664 MCNAPI void $savePersonaItems(::persona::PersonaCharacterHandle const& characterHandle);
665
666 MCNAPI void
667 $revertPersona(::persona::PersonaCharacterHandle const& currentCharacter, ::std::function<void(bool)> callback);
668
670 ::persona::PersonaCharacterHandle const& handle,
671 ::SharedTypes::persona::PieceType const& pieceTypeToRevert
672 );
673
675 ::persona::PersonaCharacterHandle const& currentCharacter,
676 ::SharedTypes::persona::PieceType const& pieceType
677 );
678
679 MCNAPI bool $isPieceOwned(::persona::PieceHandle const& item);
680
682 ::PersonaAppearance const& newAppearance,
683 ::PersonaCharacter& character,
684 ::std::function<void(bool)> callback
685 );
686
687 MCNAPI ::PersonaPiece const&
688 $getPieceFromClassicSkin(::std::string const& skinSerializedName, bool const reportFailure) const;
689
690 MCNAPI ::persona::PieceHandle $getPieceHandle(::std::string const& pieceId) const;
691
692 MCNAPI bool $isPieceLoaded(::mce::UUID const& pieceId) const;
693
694 MCNAPI bool $isKnownPersonaPiece(::mce::UUID const& pieceId) const;
695
696 MCNAPI bool $isKnownPersonaPieceUnloaded(::mce::UUID const& pieceId) const;
697
698 MCNAPI bool $isPersonaPieceLoading(::mce::UUID const& peiceId) const;
699
700 MCNAPI bool $isPersonaPieceInRepo(::mce::UUID const& pieceId) const;
701
702 MCNAPI bool $isPersonaPieceInRepo(::std::string const& pieceId) const;
703
704 MCNAPI ::PersonaPiece const& $getPersonaPieceFromRepo(::std::string const& pieceId) const;
705
706 MCNAPI void $forEachPersonaPack(::std::function<void(::Pack const&)> const& callback) const;
707
708 MCNAPI ::std::vector<::persona::PieceOfferWrapper>
709 $getDefaultPieceWrappersOfTypes(::std::vector<::SharedTypes::persona::PieceType> const& sections) const;
710
711 MCNAPI ::SemVersion const& $getVersionOfKnownPersonaPiecePack(::mce::UUID const& packId) const;
712
713 MCNAPI void $loadPiecePack(::mce::UUID packId);
714
715 MCNAPI void $queueImportOfPersonaPiecePack(::gsl::not_null<::std::shared_ptr<::Pack>> pack);
716
717 MCNAPI ::std::vector<::std::string> const& $getPieceIdsByType(::SharedTypes::persona::PieceType type) const;
718
719 MCNAPI ::std::shared_ptr<::persona::debug::PersonaDebugApi> $getPersonaDebugApi();
720
721 MCNAPI ::PersonaCharacter& $_addCharacter(::persona::ProfileType profileType, ::std::string const& playFabId);
722 // NOLINTEND
723};
Definition ActorAnimationGroup.h:22
Definition ContentCatalogService.h:5
Definition DateManager.h:14
Definition DlcBatchModel.h:5
Definition GeometryGroup.h:5
Definition IAdvancedGraphicsOptions.h:10
Definition IContentAcquisition.h:5
Definition IContentKeyProvider.h:13
Definition IMinecraftEventing.h:152
Definition IOptionRegistry.h:5
Definition IPackManifestFactory.h:17
Definition IPackSourceFactory.h:29
Definition IPersonaCharacterEditor.h:5
Definition IPersonaImageProvider.h:5
Definition IPersonaPiecePackLoader.h:5
Definition IPersonaPieceProvider.h:5
Definition IPersonaRenderResourceProvider.h:5
Definition IPersonaRepository.h:5
Definition ISkinRepository.h:5
Definition Value.h:16
Definition Pack.h:28
Definition PersonaAppearance.h:5
Definition PersonaCharacterEditor.h:5
Definition PersonaGeometryBuilder.h:5
Definition PersonaOfflineCache.h:5
Definition PersonaPiecePackLoader.h:5
Definition PersonaPiece.h:22
Definition PersonaRepository.h:5
MCAPI void $update(bool inOrStartingGameplay, ::std::shared_ptr<::ActorAnimationGroup > actorAnimationGroup)
MCAPI void $saveOfflinePersonaCatalogCache()
MCAPI::persona::AchievementOfferCollectionManager & getAchievementOfferCollectionManager(::Social::XboxLiveUser &xboxLiveUser, ::IOptionRegistry &options)
MCAPI bool $isPieceOwned(::persona::PieceHandle const &item)
MCAPI ::std::vector<::persona::PieceOfferWrapper > $getDefaultPieceWrappersOfTypes(::std::vector<::SharedTypes::persona::PieceType > const &sections) const
MCAPI::PersonaCharacter & $getCharacter(::std::string const &characterName)
MCAPI::PersonaPiece const & $getPieceFromClassicSkin(::std::string const &skinSerializedName, bool const reportFailure) const
MCAPI void onStoreCatalogReady(::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository > storeCatalog, ::Bedrock::NotNullNonOwnerPtr<::IContentAcquisition > contentAcquisition, ::Bedrock::NotNullNonOwnerPtr<::ContentCatalogService > contentCatalogService)
MCAPI void $queueImportOfPersonaPiecePack(::gsl::not_null<::std::shared_ptr<::Pack > > pack)
MCAPI::persona::PieceHandle $getPieceHandle(::std::string const &pieceId) const
MCAPI::persona::AchievementOfferCollectionManager & _initializeAchievementCollectionOfferManagerIfNeeded(::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository > storeRepo, ::Social::XboxLiveUser &xboxLiveUser, ::IOptionRegistry &options)
MCAPI::PersonaAppearance const $getSplitscreenAppearance(::std::string const &xuid, int const controllerID)
MCAPI void $loadPiecePack(::mce::UUID packId)
MCAPI void $addToOfflinePersonaCatalogMap(::persona::PieceOfferWrapper const &personaOffer, ::std::string const playfabId)
MCAPI bool $isAppearanceDefault(::PersonaAppearance const &appearance) const
MCAPI bool $isPersonaPieceLoading(::mce::UUID const &peiceId) const
MCAPI void $createSplitscreenUser(::std::string xuid, int splitscreenID, ::Json::Value &&appearanceData)
MCAPI void $removeAllEmotes(::persona::PersonaCharacterHandle const &currentCharacterHandle)
MCAPI void $updatePersonaWithNewAppearance(::PersonaAppearance const &newAppearance, ::PersonaCharacter &character, ::std::function< void(bool)> callback)
MCAPI void $downloadAndLoadPieces(::std::vector<::std::string > const &productIds, ::std::vector<::std::string > const &pieceIds)
MCAPI void * $ctor(::std::unique_ptr<::IPersonaImageProvider > imageProvider, ::std::unique_ptr<::IPersonaRenderResourceProvider > renderResourceProvider, ::std::shared_ptr<::ISkinRepository > skinRepository, ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions > advancedGraphicsOptions, ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager > resourceLoadManager, ::Bedrock::NotNullNonOwnerPtr<::ResourcePackManager > resourcePackManager, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager > entitlementManager, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::Bedrock::NonOwnerPointer<::TextureHotReloader > textureReloader, ::std::shared_ptr<::GeometryGroup > skinGeometryGroup)
MCAPI::persona::DefaultAppearanceManager const & $getDefaultAppearanceManager() const
MCAPI bool $isPieceLoaded(::mce::UUID const &pieceId) const
MCAPI bool $isLoadingAppearances(::persona::PersonaCharacterHandleArray const &handles) const
MCAPI void $loadDefaultCharactersIfNeeded()
MCAPI void $tryToReloadPersona(::persona::PersonaCharacterHandle const &handle, ::PersonaAppearance const &newAppearance, ::std::function< void(::std::string const &)> callback)
MCAPI void $changePiece(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::PieceType const pieceType, ::mce::UUID const &pieceId, ::std::string const &productId, ::persona::FreeItemState const &freeItemState, ::SharedTypes::persona::PieceSide side, ::std::function< void(bool)> callback)
MCAPI void $forEachPersonaPack(::std::function< void(::Pack const &)> const &callback) const
MCAPI ::std::vector<::std::string > const $getAllPiecesFromOfflineMapForPlayfabId(::std::string const &playfabId) const
MCAPI ::std::shared_ptr<::persona::debug::PersonaDebugApi > $getPersonaDebugApi()
MCAPI void $loadOfflinePieceMapIntoStoreCatalog(::DateManager const &dateManager)
MCAPI void $loadOfflinePersonaCatalogCache()
MCAPI bool $isLoadingAppearance(::persona::PersonaCharacterHandle const &handle) const
MCAPI void $savePersonaItems(::persona::PersonaCharacterHandle const &characterHandle)
MCAPI void $changeHeight(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::BodySizeType const &bodyType, ::std::function< void(bool)> callback)
MCAPI void $revertPersonaPiece(::persona::PersonaCharacterHandle const &handle, ::SharedTypes::persona::PieceType const &pieceTypeToRevert)
MCAPI::SkinHandle $createPersona(::persona::ProfileType profileType, ::PersonaAppearance const &newAppearance, ::std::string const &playFabId, ::std::function< void(::std::string const &)> callback)
MCAPI void $changeEmote(::persona::PersonaCharacterHandle const &currentCharacter, ::std::string const &emotePieceId, ::persona::FreeItemState const &freeItemState, int emoteWheelSlot, ::std::function< void(bool)> callback)
MCAPI::persona::DefaultAppearance const & $getDefaultAppearance(uint const &defaultIndexOverride)
MCAPI void $queuePersonaGeneralError(::persona::PersonaError errorType)
MCAPI void $removeEmote(::persona::PersonaCharacterHandle const &currentCharacter, int emoteWheelSlot)
MCAPI void $changeArmSize(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::ArmSizeType const &armSizeType, ::std::function< void(bool)> callback)
MCAPI bool $doesCharacterHavePieceOfTypeX(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::PieceType const &pieceType)
MCAPI ::Bedrock::Threading::Async< void > beginStartupAsyncInit(::PersonaRepository::StartupParams &&startupParams)
MCAPI void $revertPersona(::persona::PersonaCharacterHandle const &currentCharacter, ::std::function< void(bool)> callback)
MCAPI void $registerPersonaSkinsForCharacter(::PersonaCharacter &character)
MCAPI bool $isPersonaPieceInRepo(::mce::UUID const &pieceId) const
MCAPI::SkinHandle $createAStartingPersona(::persona::ProfileType profileType, ::std::string const &playFabId, uint const defaultAppearanceIndex, ::std::function< void(::std::string const &)> callback)
MCAPI::PersonaAppearance _createAppearanceFromJson(::Json::Value const &valueAppearance)
MCAPI::PersonaCharacter & $_addCharacter(::persona::ProfileType profileType, ::std::string const &playFabId)
MCAPI void $changePersonaTintColors(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::PieceType const pieceType, ::std::vector<::persona::color::ColorInfo > const &tintColors, ::std::function< void(bool)> callback)
MCAPI void _updatePersona(::PersonaCharacter &character, ::PersonaAppearance const &newAppearance, ::std::function< void(::std::string const &)> callback)
MCAPI void _queueEmoteParse(::std::shared_ptr<::ActorAnimationGroup > actorAnimationGroup)
MCAPI void $removeEmotesWithId(::persona::PersonaCharacterHandle const &currentCharacter, ::std::string const &emoteId)
MCAPI bool $isOfferLoading(::persona::PieceOfferWrapper const &personaOffer) const
MCAPI void $removeCharacter(::std::string const &characterName)
MCAPI ::std::vector<::std::string > const & $getPieceIdsByType(::SharedTypes::persona::PieceType type) const
MCAPI bool $isKnownPersonaPieceUnloaded(::mce::UUID const &pieceId) const
MCAPI void _processEmotesFromLoadedPieces(::std::vector<::std::string > const &loadedPieces, ::std::shared_ptr<::ActorAnimationGroup > actorAnimationGroup)
MCAPI void $saveSplitscreenAppearanceData(::std::string const &xuid, int splitscreenID, ::Json::Value &&appearanceData)
MCAPI void $changeClassicSkin(::persona::PersonaCharacterHandle const &currentCharacter, ::SkinHandle const &handle)
MCAPI void $changePersonaTintColor(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::PieceType const pieceType, ::mce::Color const &color, ushort channel, ::std::function< void(bool)> callback)
MCAPI void $changePieces(::persona::PersonaCharacterHandle const &currentCharacter, ::std::vector<::persona::PieceToChange > const &pieces, ::std::function< void(bool)> callback)
MCAPI bool $isKnownPersonaPiece(::mce::UUID const &pieceId) const
MCAPI::persona::PersonaCharacterHandle $createAStartingPersonaOnUser(::persona::ProfileType profileType, ::std::string const &playFabId, int defaultIndexOverride, ::std::function< void(::std::string const &)> callback)
MCAPI::persona::PersonaCharacterHandle $createPersonaOnUser(::persona::ProfileType profileType, ::PersonaAppearance const &appearance, ::std::string const &playFabId, ::std::function< void(::std::string const &)> callback)
MCAPI::PersonaAppearance $createAppearancefromData(::std::vector<::persona::PieceHandle > const &personaPieces, ::std::unordered_map<::SharedTypes::persona::PieceType, ::TintMapColor > const &tintMap, ::mce::Color const &skinColor, ::SharedTypes::persona::ArmSizeType const &armSize)
MCAPI void $queueContentReload(::std::shared_ptr<::ActorAnimationGroup > actorAnimationGroup)
MCAPI::SemVersion const & $getVersionOfKnownPersonaPiecePack(::mce::UUID const &packId) const
MCAPI::PersonaPiece const & $getPersonaPieceFromRepo(::std::string const &pieceId) const
MCAPI bool $isInitialized() const
MCAPI void $removePieceByType(::persona::PersonaCharacterHandle const &currentCharacter, ::SharedTypes::persona::PieceType const pieceTypeToRemove, ::SharedTypes::persona::PieceSide const side, ::std::function< void(bool)> callback)
MCAPI void createSplitScreenAppearanceManager(::std::string const &playFabId)
Definition PersonaSkinRegistrar.h:5
Definition PersonaTextureBuilder.h:5
Definition ResourceLoadManager.h:22
Definition ResourcePackManager.h:29
Definition SemVersion.h:15
Definition SkinHandle.h:5
Definition XboxLiveUser.h:7
Definition TaskGroup.h:85
Definition TintMapColor.h:8
Definition Color.h:13
Definition AchievementOfferCollectionManager.h:7
Definition CharacterCollection.h:7
Definition ICharacterCollection.h:7
Definition PendingAppearance.h:7
Definition PersonaCharacterHandleArray.h:7
Definition PieceHandle.h:7
Definition PieceOfferWrapper.h:7
Definition ColorInfo.h:7
Definition PersonaDebugApi.h:7
Definition SplitscreenJsonAppearanceManager.h:7
STL namespace.
Definition PersonaCharacter.h:5
Definition PersonaRepository.h:16
Definition PersonaRepository.h:14
Definition TextureHotReloader.h:5
Definition DefaultAppearance.h:7
Definition FreeItemState.h:7
Definition PersonaCharacterHandle.h:10
Definition PieceToChange.h:7