Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
ISkinRepository.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/persona/defaults/DefaultSkinType.h"
7#include "mc/deps/core/file/PathBuffer.h"
8#include "mc/deps/core/string/BasicStackString.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/shared_types/persona/ArmSizeType.h"
12
13// auto generated forward declare list
14// clang-format off
15class ContentIdentity;
17class Pack;
20class SemVersion;
22class Skin;
23class SkinHandle;
24class SkinPack;
25class TaskGroup;
26struct SkinPackMeta;
27namespace mce { class UUID; }
28// clang-format on
29
31public:
32 // virtual functions
33 // NOLINTBEGIN
34 virtual ~ISkinRepository() /*override*/ = default;
35
36 virtual void update(::ResourcePackManager& resourcePackManager) = 0;
37
38 virtual void flushResourceLoaderTasks() = 0;
39
40 virtual void
41 addLoadListener(::std::weak_ptr<bool> existanceTracker, ::std::function<void(::mce::UUID const&)> callback) = 0;
42
43 virtual bool importSkinPack(::gsl::not_null<::std::shared_ptr<::Pack>> pack, bool isTitleLocked) = 0;
44
45 virtual bool
46 loadCustomSkin(::std::string const& customSkinId, ::SharedTypes::persona::ArmSizeType customSkinArmSize) = 0;
47
48 virtual bool tryLoadSkinPack(::mce::UUID const& packId, bool shouldNotifyPlayer) = 0;
49
50 virtual bool loadSkinPack(::mce::UUID const& packId) = 0;
51
52 virtual void loadSkinPackAsync(::mce::UUID const& packId, ::SkinPackMeta const& metadata) = 0;
53
54 virtual void unloadAndDeleteSkinPack(::mce::UUID const& packId) = 0;
55
56 virtual void unloadAndDeleteSkinPackForReimport(::mce::UUID const& packId) = 0;
57
58 virtual void cancelPendingLoads() = 0;
59
60 virtual ::std::vector<::Pack const*> const getKnownSkinPacks() const = 0;
61
62 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInPackage() const = 0;
63
64 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInUserDir() const = 0;
65
66 virtual ::std::vector<::Pack const*> const getKnownSkinPacksInPremiumDir() const = 0;
67
68 virtual void forEachPack(::std::function<void(::Pack const&)> const& callback) const = 0;
69
70 virtual void forEachLoadedSkinPack(::std::function<void(::SkinPack const&)> const& callback) const = 0;
71
72 virtual ::SkinPack* getSkinPackById(::mce::UUID const& packId) const = 0;
73
74 virtual ::SkinPack* getSkinPackByIdHash(uint64 packIdHash) const = 0;
75
76 virtual ::SemVersion const& getVersionOfKnownSkinPack(::mce::UUID const& packId) const = 0;
77
78 virtual bool isSkinPackKnown(::mce::UUID const& packId) const = 0;
79
80 virtual bool isSkinPackLoaded(::mce::UUID const& packId) const = 0;
81
82 virtual bool isKnownSkinPackUnLoaded(::mce::UUID const& packId) const = 0;
83
84 virtual bool isSkinPackLoading(::mce::UUID const& packId) const = 0;
85
86 virtual bool isSkinPackOwned(::ContentIdentity const& contentIdentity) const = 0;
87
88 virtual ::Skin const* getSkinBySerializableName(::std::string const& serializableName) const = 0;
89
90 virtual ::Skin const* getSkin(::SkinHandle const& skinHandle) const = 0;
91
92 virtual bool canUseSkin(::Skin const* skin) const = 0;
93
94 virtual bool canUseSkin(::SkinHandle const& skinHandle) const = 0;
95
96 virtual ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
97 storeCustomSkin(::ResourceLocation const& sourceLocation) = 0;
98
99 virtual ::SkinHandle addCustomSkin(::SkinHandle const& customSkinHandle) = 0;
100
101 virtual ::SkinHandle
102 addCustomSkin(::persona::DefaultSkinType bodySkinType, ::ResourceLocation const& customImageLocation) = 0;
103
104 virtual ::SkinHandle
105 addCustomSkin(::SerializedSkinRef const& geoSerializedSkin, ::ResourceLocation const& customImageLocation) = 0;
106
107 virtual bool canPickSkin() const = 0;
108
109 virtual void pickSkin(::std::function<void(bool, ::std::string)> onPickSkin) = 0;
110
111 virtual void reloadSkinPackLocText() = 0;
112
113 virtual ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> getSkinKeyProvider() const = 0;
114
115 virtual bool isValidSkin(::ResourceLocation const& skinLocation) const = 0;
116
117 virtual void loadSkin(::ResourceLocation const& skinLocation) = 0;
118
119 virtual void unloadSkin(::ResourceLocation const& skinLocation) = 0;
120
121 virtual bool loadCustomSkinTexture(::ResourceLocation const& skinLocation) = 0;
122
123 virtual void beginAsyncInit(::TaskGroup& taskGroup) = 0;
124
125 virtual bool isInitialized() const = 0;
126
127 virtual uint64 getLoadedSkinPackCount() const = 0;
128
129 virtual uint64 getLoadingSkinPackCount() const = 0;
130
131 virtual uint64 getUnloadedSkinPackCount() const = 0;
132
133 virtual void deleteUnreferencedCustomSkinFiles(::std::vector<::SkinHandle> const& referencedSkins) = 0;
134
135 virtual ::Core::PathBuffer<::std::string> getCustomSkinDirectoryPath() const = 0;
136
137 virtual ::std::optional<::Core::PathBuffer<::std::string>> getSharedCustomSkinDirectoryPath() const = 0;
138 // NOLINTEND
139};
Definition EnableNonOwnerReferences.h:7
Definition ContentIdentity.h:8
Definition IContentKeyProvider.h:13
Definition ISkinRepository.h:5
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 SkinPack.h:5
Definition Skin.h:5
Definition TaskGroup.h:85
Definition UUID.h:8
Definition SkinPackMeta.h:5