Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
SkinRepository.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/persona/ISkinRepository.h"
7#include "mc/client/persona/defaults/DefaultSkinType.h"
8#include "mc/client/persona/pack_cache/PackEvictionState.h"
9#include "mc/deps/core/file/PathBuffer.h"
10#include "mc/deps/core/sem_ver/SemVersion.h"
11#include "mc/deps/core/string/BasicStackString.h"
12#include "mc/deps/core/threading/Async.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/deps/shared_types/persona/ArmSizeType.h"
15#include "mc/platform/ImagePickingCallback.h"
16#include "mc/platform/UUID.h"
17
18// auto generated forward declare list
19// clang-format off
20class ContentIdentity;
23class IEntitlementManager;
27class IToastManager;
28class Pack;
29class PackSource;
33class Skin;
34class SkinHandle;
35class SkinPack;
37class SkinPackPin;
38class TaskGroup;
39struct SkinPackMeta;
40namespace Core { class FilePathManager; }
41namespace mce { class TextureGroup; }
42namespace persona { struct PackEvictionDrainSnapshot; }
43namespace persona { struct PackEvictionPass; }
44namespace persona { struct PackEvictionTarget; }
45namespace persona { struct PackEvictionTelemetrySnapshot; }
46// clang-format on
47
50 public ::std::enable_shared_from_this<::SkinRepository> {
51public:
52 // SkinRepository inner types declare
53 // clang-format off
54 struct SkinPackEntry;
55 struct LoadListener;
56 // clang-format on
57
58 // SkinRepository inner types define
59 enum class SkinPackLoadState : uchar {
60 Unloaded = 0,
61 Loading = 1,
62 Loaded = 2,
63 };
64
65 enum class EntryDisposition : uchar {
66 Erase = 0,
67 KeepForReimport = 1,
68 };
69
70 struct SkinPackEntry {
71 public:
72 // member variables
73 // NOLINTBEGIN
74 ::ll::TypedStorage<8, 24, ::SemVersion> mVersion;
75 ::ll::TypedStorage<1, 1, ::SkinRepository::SkinPackLoadState> mState;
76 ::ll::TypedStorage<4, 4, uint> mPinCount;
77 ::ll::TypedStorage<8, 8, uint64> mPinGeneration;
78 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SkinPack>> mSkinPack;
79 ::ll::TypedStorage<
80 8,
81 16,
82 ::std::optional<::std::_List_iterator<::std::_List_val<::std::_List_simple_types<::mce::UUID>>>>>
83 mLruPosition;
84 // NOLINTEND
85
86 public:
87 // member functions
88 // NOLINTBEGIN
89 MCNAPI void markLoaded(::std::unique_ptr<::SkinPack> skinPack);
90 // NOLINTEND
91 };
92
93 struct LoadListener {
94 public:
95 // member variables
96 // NOLINTBEGIN
97 ::ll::TypedStorage<8, 16, ::std::weak_ptr<bool>> mExistenceTracker;
98 ::ll::TypedStorage<8, 64, ::std::function<void(::mce::UUID const&)>> mCallback;
99 // NOLINTEND
100 };
101
102 using EvictionTelemetrySnapshot = ::persona::PackEvictionTelemetrySnapshot;
103
104 using DrainTelemetrySnapshot = ::persona::PackEvictionDrainSnapshot;
105
106 using EvictionTarget = ::persona::PackEvictionTarget;
107
108 using EvictionPass = ::persona::PackEvictionPass;
109
110public:
111 // member variables
112 // NOLINTBEGIN
113 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::mce::TextureGroup>> mTextureGroup;
114 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository>> mPackRepository;
115 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IPackManifestFactory>> mManifestFactory;
116 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IPackSourceFactory>> mPackSourceFactory;
117 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
118 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>> mKeyProvider;
119 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager>> mFilePathManager;
120 ::ll::TypedStorage<8, 64, ::std::unordered_map<::mce::UUID, ::SkinRepository::SkinPackEntry>> mPackEntryMap;
121 ::ll::TypedStorage<8, 16, ::std::list<::mce::UUID>> mLoadedPackLru;
122 ::ll::TypedStorage<1, 1, bool> mLoadedPackLruDirty;
123 ::ll::TypedStorage<8, 8, uint64> mMaxLoadedSkinPacks;
124 ::ll::TypedStorage<8, 8, uint64> mNextPinGeneration;
125 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PackSource>> mAllSkinPacksSource;
126 ::ll::TypedStorage<8, 8, ::DirectoryPackSource*> mPremiumSkinPackSource;
127 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SkinPackDiskLRUIndex>> mSkinPackDiskLRUIndex;
128 ::ll::TypedStorage<1, 1, bool> mAutoEvictionEnabled;
129 ::ll::TypedStorage<8, 192, ::persona::PackEvictionState> mEvictionState;
130 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Pack>> mLoadingPack;
131 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>> mPendingLoads;
132 ::ll::TypedStorage<8, 64, ::std::function<void(bool, ::std::string)>> mOnPickSkin;
133 ::ll::TypedStorage<1, 1, bool> mIsPickingSkin;
134 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IToastManager>> mToastManager;
135 ::ll::TypedStorage<8, 24, ::std::vector<::SkinRepository::LoadListener>> mLoadListeners;
136 ::ll::TypedStorage<1, 1, bool> mInitialized;
137 ::ll::TypedStorage<8, 16, ::Bedrock::Threading::Async<void>> mLocRefreshTask;
138 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
139 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mDiskTaskGroup;
140 // NOLINTEND
141
142public:
143 // prevent constructor by default
145
146public:
147 // virtual functions
148 // NOLINTBEGIN
149 virtual ~SkinRepository() /*override*/ = default;
150
151 virtual void flushResourceLoaderTasks() /*override*/;
152
153 virtual ::Core::PathBuffer<::std::string> getCustomSkinDirectoryPath() const /*override*/;
154
155 virtual ::std::optional<::Core::PathBuffer<::std::string>> getSharedCustomSkinDirectoryPath() const /*override*/;
156
157 virtual void update(::ResourcePackManager& resourcePackManager) /*override*/;
158
159 virtual void addLoadListener(
160 ::std::weak_ptr<bool> existanceTracker,
161 ::std::function<void(::mce::UUID const&)> callback
162 ) /*override*/;
163
164 virtual bool importSkinPack(::gsl::not_null<::std::shared_ptr<::Pack>> pack, bool isTitleLocked) /*override*/;
165
166 virtual bool loadCustomSkin(
167 ::std::string const& customSkinId,
168 ::SharedTypes::persona::ArmSizeType customSkinArmSize
169 ) /*override*/;
170
171 virtual bool tryLoadSkinPack(::mce::UUID const& packId, bool shouldNotifyPlayer) /*override*/;
172
173 virtual bool loadSkinPack(::mce::UUID const& packId) /*override*/;
174
175 virtual void loadSkinPackAsync(::mce::UUID const& packId, ::SkinPackMeta const& metadata) /*override*/;
176
177 virtual void unloadAndDeleteSkinPack(::mce::UUID const& packId) /*override*/;
178
179 virtual void unloadAndDeleteSkinPackForReimport(::mce::UUID const& packId) /*override*/;
180
181 virtual void cancelPendingLoads() /*override*/;
182
183 virtual ::std::vector<::Pack const*> const getKnownSkinPacks() const /*override*/;
184
185 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInPackage() const /*override*/;
186
187 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInUserDir() const /*override*/;
188
189 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInPremiumDir() const /*override*/;
190
191 virtual void forEachPack(::std::function<void(::Pack const&)> const& callback) const /*override*/;
192
193 virtual void forEachLoadedSkinPack(::std::function<void(::SkinPack const&)> const& callback) const /*override*/;
194
195 virtual ::SkinPack* getSkinPackById(::mce::UUID const& packId) const /*override*/;
196
197 virtual ::SkinPack* getSkinPackByIdHash(uint64 packIdHash) const /*override*/;
198
199 virtual ::SemVersion const& getVersionOfKnownSkinPack(::mce::UUID const& packId) const /*override*/;
200
201 virtual bool isSkinPackKnown(::mce::UUID const& packId) const /*override*/;
202
203 virtual bool isSkinPackLoaded(::mce::UUID const& packId) const /*override*/;
204
205 virtual bool isKnownSkinPackUnLoaded(::mce::UUID const& packId) const /*override*/;
206
207 virtual bool isSkinPackLoading(::mce::UUID const& packId) const /*override*/;
208
209 virtual bool isSkinPackOwned(::ContentIdentity const& contentIdentity) const /*override*/;
210
211 virtual ::Skin const* getSkinBySerializableName(::std::string const& serializableName) const /*override*/;
212
213 virtual ::Skin const* getSkin(::SkinHandle const& skinHandle) const /*override*/;
214
215 virtual bool canUseSkin(::Skin const* skin) const /*override*/;
216
217 virtual bool canUseSkin(::SkinHandle const& skinHandle) const /*override*/;
218
219 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
220 storeCustomSkin(::ResourceLocation const& sourceLocation) /*override*/;
221
222 virtual ::SkinHandle addCustomSkin(::SkinHandle const& customSkinHandle) /*override*/;
223
224 virtual ::SkinHandle
225 addCustomSkin(::persona::DefaultSkinType bodySkinType, ::ResourceLocation const& customImageLocation) /*override*/;
226
227 virtual ::SkinHandle addCustomSkin(
228 ::SerializedSkinRef const& geoSerializedSkin,
229 ::ResourceLocation const& customImageLocation
230 ) /*override*/;
231
232 virtual bool canPickSkin() const /*override*/;
233
234 virtual void pickSkin(::std::function<void(bool, ::std::string)> onPickSkin) /*override*/;
235
236 virtual void reloadSkinPackLocText() /*override*/;
237
238 virtual ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> getSkinKeyProvider() const /*override*/;
239
240 virtual bool isValidSkin(::ResourceLocation const& skinLocation) const /*override*/;
241
242 virtual void loadSkin(::ResourceLocation const& skinLocation) /*override*/;
243
244 virtual void unloadSkin(::ResourceLocation const& skinLocation) /*override*/;
245
246 virtual bool loadCustomSkinTexture(::ResourceLocation const& skinLocation) /*override*/;
247
248 virtual void beginAsyncInit(::TaskGroup& taskGroup) /*override*/;
249
250 virtual bool isInitialized() const /*override*/;
251
252 virtual uint64 getLoadedSkinPackCount() const /*override*/;
253
254 virtual uint64 getLoadingSkinPackCount() const /*override*/;
255
256 virtual uint64 getUnloadedSkinPackCount() const /*override*/;
257
258 virtual void deleteUnreferencedCustomSkinFiles(::std::vector<::SkinHandle> const& referencedSkins) /*override*/;
259
260 virtual void onImagePickingSuccess(::std::string const& temporaryFilePath) /*override*/;
261
262 virtual void onImagePickingCanceled() /*override*/;
263 // NOLINTEND
264
265public:
266 // member functions
267 // NOLINTBEGIN
268 MCNAPI SkinRepository(
269 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
270 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository> resourcePackRepository,
271 ::Bedrock::NotNullNonOwnerPtr<::IPackManifestFactory> manifestFactory,
272 ::Bedrock::NotNullNonOwnerPtr<::IPackSourceFactory> packSourceFactory,
273 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
274 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> keyProvider,
275 ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager> filePathManager
276 );
277
278 MCNAPI bool _loadSkinPack(::gsl::not_null<::std::shared_ptr<::Pack>> pack, bool);
279
280 MCNAPI void _touchSkinPack(::mce::UUID const& packId, ::SkinRepository::SkinPackEntry const& entry) const;
281
282 MCNAPI bool
283 _tryLoadSkinPack(::gsl::not_null<::std::shared_ptr<::Pack>> pack, bool loadGeometry, bool notifyPlayerOnFailure);
284
285 MCNAPI void _unloadAndDeleteSkinPack(::mce::UUID const& packId, ::SkinRepository::EntryDisposition disposition);
286
287 MCNAPI ::SkinPackPin pinSkinPack(::mce::UUID const& packId);
288 // NOLINTEND
289
290public:
291 // constructor thunks
292 // NOLINTBEGIN
293 MCNAPI void* $ctor(
294 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
295 ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository> resourcePackRepository,
296 ::Bedrock::NotNullNonOwnerPtr<::IPackManifestFactory> manifestFactory,
297 ::Bedrock::NotNullNonOwnerPtr<::IPackSourceFactory> packSourceFactory,
298 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
299 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> keyProvider,
300 ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager> filePathManager
301 );
302 // NOLINTEND
303
304public:
305 // virtual function thunks
306 // NOLINTBEGIN
308
309 MCNAPI ::Core::PathBuffer<::std::string> $getCustomSkinDirectoryPath() const;
310
311 MCNAPI ::std::optional<::Core::PathBuffer<::std::string>> $getSharedCustomSkinDirectoryPath() const;
312
313 MCNAPI void $update(::ResourcePackManager& resourcePackManager);
314
315 MCNAPI void
316 $addLoadListener(::std::weak_ptr<bool> existanceTracker, ::std::function<void(::mce::UUID const&)> callback);
317
318 MCNAPI bool $importSkinPack(::gsl::not_null<::std::shared_ptr<::Pack>> pack, bool isTitleLocked);
319
320 MCNAPI bool
321 $loadCustomSkin(::std::string const& customSkinId, ::SharedTypes::persona::ArmSizeType customSkinArmSize);
322
323 MCNAPI bool $tryLoadSkinPack(::mce::UUID const& packId, bool shouldNotifyPlayer);
324
325 MCNAPI bool $loadSkinPack(::mce::UUID const& packId);
326
327 MCNAPI void $loadSkinPackAsync(::mce::UUID const& packId, ::SkinPackMeta const& metadata);
328
329 MCNAPI void $unloadAndDeleteSkinPack(::mce::UUID const& packId);
330
331 MCNAPI void $unloadAndDeleteSkinPackForReimport(::mce::UUID const& packId);
332
333 MCNAPI void $cancelPendingLoads();
334
335 MCNAPI ::std::vector<::Pack const*> const $getKnownSkinPacks() const;
336
337 MCNAPI ::std::vector<::Pack const*> const $getKnownSkinPacksInPackage() const;
338
339 MCNAPI ::std::vector<::Pack const*> const $getKnownSkinPacksInUserDir() const;
340
341 MCNAPI ::std::vector<::Pack const*> const $getKnownSkinPacksInPremiumDir() const;
342
343 MCNAPI void $forEachPack(::std::function<void(::Pack const&)> const& callback) const;
344
345 MCNAPI void $forEachLoadedSkinPack(::std::function<void(::SkinPack const&)> const& callback) const;
346
347 MCNAPI ::SkinPack* $getSkinPackById(::mce::UUID const& packId) const;
348
349 MCNAPI ::SkinPack* $getSkinPackByIdHash(uint64 packIdHash) const;
350
351 MCNAPI ::SemVersion const& $getVersionOfKnownSkinPack(::mce::UUID const& packId) const;
352
353 MCNAPI bool $isSkinPackKnown(::mce::UUID const& packId) const;
354
355 MCNAPI bool $isSkinPackLoaded(::mce::UUID const& packId) const;
356
357 MCNAPI bool $isKnownSkinPackUnLoaded(::mce::UUID const& packId) const;
358
359 MCNAPI bool $isSkinPackLoading(::mce::UUID const& packId) const;
360
361 MCNAPI bool $isSkinPackOwned(::ContentIdentity const& contentIdentity) const;
362
363 MCNAPI ::Skin const* $getSkinBySerializableName(::std::string const& serializableName) const;
364
365 MCNAPI ::Skin const* $getSkin(::SkinHandle const& skinHandle) const;
366
367 MCNAPI bool $canUseSkin(::Skin const* skin) const;
368
369 MCNAPI bool $canUseSkin(::SkinHandle const& skinHandle) const;
370
371 MCNAPI ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
372 $storeCustomSkin(::ResourceLocation const& sourceLocation);
373
374 MCNAPI ::SkinHandle $addCustomSkin(::SkinHandle const& customSkinHandle);
375
376 MCNAPI ::SkinHandle
377 $addCustomSkin(::persona::DefaultSkinType bodySkinType, ::ResourceLocation const& customImageLocation);
378
379 MCNAPI ::SkinHandle
380 $addCustomSkin(::SerializedSkinRef const& geoSerializedSkin, ::ResourceLocation const& customImageLocation);
381
382 MCNAPI bool $canPickSkin() const;
383
384 MCNAPI void $pickSkin(::std::function<void(bool, ::std::string)> onPickSkin);
385
387
388 MCNAPI ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> $getSkinKeyProvider() const;
389
390 MCNAPI bool $isValidSkin(::ResourceLocation const& skinLocation) const;
391
392 MCNAPI void $loadSkin(::ResourceLocation const& skinLocation);
393
394 MCNAPI void $unloadSkin(::ResourceLocation const& skinLocation);
395
396 MCNAPI bool $loadCustomSkinTexture(::ResourceLocation const& skinLocation);
397
398 MCNAPI void $beginAsyncInit(::TaskGroup& taskGroup);
399
400 MCNAPI bool $isInitialized() const;
401
402 MCNAPI uint64 $getLoadedSkinPackCount() const;
403
404 MCNAPI uint64 $getLoadingSkinPackCount() const;
405
406 MCNAPI uint64 $getUnloadedSkinPackCount() const;
407
408 MCNAPI void $deleteUnreferencedCustomSkinFiles(::std::vector<::SkinHandle> const& referencedSkins);
409
410 MCNAPI void $onImagePickingSuccess(::std::string const& temporaryFilePath);
411
413 // NOLINTEND
414};
Definition ContentIdentity.h:8
Definition FilePathManager.h:18
Definition DirectoryPackSource.h:24
Definition IContentKeyProvider.h:13
Definition IPackManifestFactory.h:17
Definition IPackSourceFactory.h:29
Definition IResourcePackRepository.h:36
Definition ISkinRepository.h:5
Definition IToastManager.h:5
Definition ImagePickingCallback.h:5
Definition PackSource.h:28
Definition Pack.h:28
Definition ResourceLocation.h:15
Definition ResourcePackManager.h:29
Definition SemVersion.h:15
Definition SerializedSkinRef.h:26
Definition SkinHandle.h:5
Definition SkinPackDiskLRUIndex.h:5
Definition SkinPackPin.h:5
Definition SkinPack.h:5
Definition SkinRepository.h:5
MCAPI bool $tryLoadSkinPack(::mce::UUID const &packId, bool shouldNotifyPlayer)
MCAPI void $deleteUnreferencedCustomSkinFiles(::std::vector<::SkinHandle > const &referencedSkins)
MCAPI ::std::vector<::Pack const * > const $getKnownSkinPacksInUserDir() const
MCAPI ::std::vector<::Pack const * > const $getKnownSkinPacksInPackage() const
MCAPI::Skin const * $getSkinBySerializableName(::std::string const &serializableName) const
MCAPI ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > $getSkinKeyProvider() const
MCAPI void $loadSkinPackAsync(::mce::UUID const &packId, ::SkinPackMeta const &metadata)
MCAPI void $unloadAndDeleteSkinPack(::mce::UUID const &packId)
MCAPI void $addLoadListener(::std::weak_ptr< bool > existanceTracker, ::std::function< void(::mce::UUID const &)> callback)
MCAPI void $flushResourceLoaderTasks()
MCAPI void $pickSkin(::std::function< void(bool, ::std::string)> onPickSkin)
MCAPI void $update(::ResourcePackManager &resourcePackManager)
MCAPI void $beginAsyncInit(::TaskGroup &taskGroup)
MCAPI::SkinPackPin pinSkinPack(::mce::UUID const &packId)
MCAPI bool $loadCustomSkin(::std::string const &customSkinId, ::SharedTypes::persona::ArmSizeType customSkinArmSize)
MCAPI uint64 $getLoadedSkinPackCount() const
MCAPI void $unloadSkin(::ResourceLocation const &skinLocation)
MCAPI void $onImagePickingSuccess(::std::string const &temporaryFilePath)
MCAPI ::std::vector<::Pack const * > const $getKnownSkinPacksInPremiumDir() const
MCAPI ::Core::PathBuffer<::std::string > $getCustomSkinDirectoryPath() const
MCAPI bool $canUseSkin(::Skin const *skin) const
MCAPI bool $isInitialized() const
MCAPI::SkinHandle $addCustomSkin(::SkinHandle const &customSkinHandle)
MCAPI void $onImagePickingCanceled()
MCAPI ::std::optional<::Core::PathBuffer<::std::string > > $getSharedCustomSkinDirectoryPath() const
MCAPI::SkinPack * $getSkinPackByIdHash(uint64 packIdHash) const
MCAPI void $forEachLoadedSkinPack(::std::function< void(::SkinPack const &)> const &callback) const
MCAPI uint64 $getUnloadedSkinPackCount() const
MCAPI bool $isSkinPackLoading(::mce::UUID const &packId) const
MCAPI bool _loadSkinPack(::gsl::not_null<::std::shared_ptr<::Pack > > pack, bool)
MCAPI::SkinPack * $getSkinPackById(::mce::UUID const &packId) const
MCAPI bool $isSkinPackOwned(::ContentIdentity const &contentIdentity) const
MCAPI void $unloadAndDeleteSkinPackForReimport(::mce::UUID const &packId)
MCAPI::SemVersion const & $getVersionOfKnownSkinPack(::mce::UUID const &packId) const
MCAPI bool _tryLoadSkinPack(::gsl::not_null<::std::shared_ptr<::Pack > > pack, bool loadGeometry, bool notifyPlayerOnFailure)
MCAPI void $loadSkin(::ResourceLocation const &skinLocation)
MCAPI bool $isKnownSkinPackUnLoaded(::mce::UUID const &packId) const
MCAPI bool $loadCustomSkinTexture(::ResourceLocation const &skinLocation)
MCAPI void $reloadSkinPackLocText()
MCAPI void $cancelPendingLoads()
MCAPI void _unloadAndDeleteSkinPack(::mce::UUID const &packId, ::SkinRepository::EntryDisposition disposition)
MCAPI bool $isValidSkin(::ResourceLocation const &skinLocation) const
MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > $storeCustomSkin(::ResourceLocation const &sourceLocation)
MCAPI bool $canPickSkin() const
MCAPI void * $ctor(::std::shared_ptr<::mce::TextureGroup > textureGroup, ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository > resourcePackRepository, ::Bedrock::NotNullNonOwnerPtr<::IPackManifestFactory > manifestFactory, ::Bedrock::NotNullNonOwnerPtr<::IPackSourceFactory > packSourceFactory, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager > entitlementManager, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > keyProvider, ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager > filePathManager)
MCAPI void $forEachPack(::std::function< void(::Pack const &)> const &callback) const
MCAPI bool $loadSkinPack(::mce::UUID const &packId)
MCAPI uint64 $getLoadingSkinPackCount() const
MCAPI bool $isSkinPackLoaded(::mce::UUID const &packId) const
MCAPI ::std::vector<::Pack const * > const $getKnownSkinPacks() const
MCAPI bool $importSkinPack(::gsl::not_null<::std::shared_ptr<::Pack > > pack, bool isTitleLocked)
MCAPI bool $isSkinPackKnown(::mce::UUID const &packId) const
MCAPI::Skin const * $getSkin(::SkinHandle const &skinHandle) const
MCAPI void _touchSkinPack(::mce::UUID const &packId, ::SkinRepository::SkinPackEntry const &entry) const
Definition Skin.h:5
Definition TaskGroup.h:85
Definition TextureGroup.h:7
Definition UUID.h:8
STL namespace.
Definition SkinPackMeta.h:5
Definition SkinRepository.h:18
Definition SkinRepository.h:20
MCAPI void markLoaded(::std::unique_ptr<::SkinPack > skinPack)
Definition PackEvictionDrainSnapshot.h:7
Definition PackEvictionPass.h:7
Definition PackEvictionTarget.h:7
Definition PackEvictionTelemetrySnapshot.h:7