LeviLamina
Loading...
Searching...
No Matches
IContentManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/screens/models/ContentFlags.h"
7#include "mc/client/gui/screens/models/ContentType.h"
8#include "mc/deps/core/file/PathBuffer.h"
9#include "mc/deps/core/resource/PackType.h"
10#include "mc/deps/core/threading/Async.h"
11#include "mc/deps/core/utility/NonOwnerPointer.h"
12
13// auto generated forward declare list
14// clang-format off
16class ContentIdentity;
21class Pack;
22class TaskGroup;
23struct ContentItem;
24struct ContentSource;
26struct PackContentItem;
28namespace Bedrock::PubSub { class Subscription; }
29namespace Core { class FilePathManager; }
30namespace Realms { struct Content; }
31namespace Realms { struct RealmId; }
32namespace StorageManager { class ContentItemProvider; }
33namespace StorageManager { class IContentHandler; }
34namespace StorageManager { class WorldConverter; }
35namespace mce { class UUID; }
36// clang-format on
37
38class IContentManager {
39public:
40 // IContentManager inner types define
41 using ConstContentItemPtr = ::std::shared_ptr<::ContentItem const>;
42
43 using ContentItemPtr = ::std::shared_ptr<::ContentItem>;
44
45 using PackContentItemPtr = ::std::shared_ptr<::PackContentItem>;
46
47public:
48 // virtual functions
49 // NOLINTBEGIN
50 virtual ~IContentManager() = default;
51
52 virtual ::ContentSource* loadContent(::ContentType contentType, ::ContentFlags flags) = 0;
53
54 virtual ::ContentSource* loadContent(::InvalidPacksFilterGroup const& invalidFilter) = 0;
55
56 virtual ::ContentSource*
57 loadContentForLevel(::std::string const& levelId, ::mce::UUID const& premiumTemplateId) = 0;
58
59 virtual ::ContentSource* loadContentForRealm(int64 const realmId) = 0;
60
61 virtual ::std::unique_ptr<::ContentSource>
62 loadContentForRealmsWorld(::Realms::RealmId realmId, ::std::vector<::Realms::Content> const& servicePackData) = 0;
63
64 virtual void addPackSourceFromPremiumTemplate(
65 ::RealmPackManagerContentSource* source,
66 ::mce::UUID const& premiumTemplateId,
67 ::PackType packType
68 ) = 0;
69
70 virtual void addRealmsUnknownPackSources(::RealmPackManagerContentSource* contentSource) = 0;
71
72 virtual void addPacksToRealmsUnknownPackSource(::std::unique_ptr<::Pack> pack) = 0;
73
74 virtual void addCachedHostPackIdProvider(::std::weak_ptr<::CachedHostPackIdProvider> provider) = 0;
75
76 virtual void clearRealmsUnknownPackSource() = 0;
77
78 virtual void removeUnneededItemFromRealmsUnknownContentSource(::mce::UUID const& id) = 0;
79
80 virtual ::gsl::not_null<::std::shared_ptr<::ContentItemCollection>>
81 getGlobalResourcePackCollection(bool isEditorMode) = 0;
82
83 virtual ::std::unique_ptr<::IContentManagerContext>
84 createContext(::std::function<bool(::std::shared_ptr<::ContentItem const> const&)> contextPredicate) = 0;
85
86 virtual void removeContext(::IContentManagerContext& context) = 0;
87
88 virtual ::std::vector<::std::unique_ptr<::ContentSource>> const& getSources() const = 0;
89
90 virtual ::std::vector<::std::shared_ptr<::ContentItem>> getContentItems() const = 0;
91
92 virtual ::std::shared_ptr<::IVersionedContentItemCollection const> getVersionedItems() const = 0;
93
94 virtual void enableCatalogPackSource() = 0;
95
96 virtual void generateItems(::ContentSource* source) = 0;
97
98 virtual ::Bedrock::Threading::Async<void> reloadSources(bool saveSources) = 0;
99
100 virtual void reloadItems() = 0;
101
102 virtual void reloadViews() = 0;
103
104 virtual void populateDependencies() const = 0;
105
106 virtual void deleteContent(::std::shared_ptr<::ContentItem const> const& contentItem) = 0;
107
108 virtual void deleteContent(::std::vector<::std::shared_ptr<::ContentItem const>> const& contentItems) = 0;
109
110 virtual void deleteContentFiles(::std::shared_ptr<::ContentItem const> const& contentItem) = 0;
111
112 virtual void deleteContentFiles(::std::vector<::std::shared_ptr<::ContentItem const>> const& contentItems) = 0;
113
114 virtual void postDeleteContent(::std::shared_ptr<::ContentItem const> const& contentItem) = 0;
115
116 virtual void postDeleteContent(::std::vector<::std::shared_ptr<::ContentItem const>> const& contentItems) = 0;
117
118 virtual uint64 generateContentId() = 0;
119
120 virtual ::Core::PathBuffer<::std::string> const getWorldResourcePath(::std::string const& levelId) const = 0;
121
122 virtual ::Core::PathBuffer<::std::string> const getWorldBehaviorPath(::std::string const& levelId) const = 0;
123
124 virtual ::Core::PathBuffer<::std::string> const getWorldResourceFolder(::std::string const& levelId) const = 0;
125
126 virtual ::Core::PathBuffer<::std::string> const getWorldBehaviorFolder(::std::string const& levelId) const = 0;
127
128 virtual ::Core::PathBuffer<::std::string> const getWorldPath(::std::string const& levelId) const = 0;
129
130 virtual ::Core::PathBuffer<::std::string> const&
131 getPremiumWorldTemplateFolder(::ContentIdentity const& templateId) = 0;
132
133 virtual ::ContentManagerProxy* getProxy() = 0;
134
135 virtual void beginAsyncInit(::TaskGroup& taskGroup) = 0;
136
137 virtual bool isInitialized() const = 0;
138
139 virtual void onLanguageChanged() = 0;
140
141 virtual void refreshContentCatalogPackSource() = 0;
142
143 virtual ::Bedrock::PubSub::Subscription refreshContentCatalogPackSource(::std::function<void()>&& callback) = 0;
144
145 virtual void onRealmsReset(::Realms::RealmId const realmsId) = 0;
146
147 virtual ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager> getFilePathManager() = 0;
148
149 virtual ::Bedrock::PubSub::Subscription
150 subscribeToSourcesReloadedAsyncCompleted(::std::function<void()>&& onSourcesReloadedAsyncCallback) = 0;
151
152 virtual ::std::shared_ptr<::StorageManager::ContentItemProvider> getStorageContentItemProvider() = 0;
153
154 virtual ::StorageManager::IContentHandler& getStorageContentHandler() = 0;
155
156 virtual ::std::shared_ptr<::StorageManager::WorldConverter> getStorageWorldConverter() = 0;
157
158 virtual ::Bedrock::PubSub::Subscription registerToReloadViews(::std::function<void()> callback) = 0;
159
160 virtual ::Bedrock::PubSub::Subscription registerToDeleteContent(::std::function<void()> callback) = 0;
161 // NOLINTEND
162};
Definition Subscription.h:10
Definition CachedHostPackIdProvider.h:5
Definition ContentIdentity.h:8
Definition ContentItemCollection.h:5
Definition ContentManagerProxy.h:5
Definition FilePathManager.h:18
Definition IContentManagerContext.h:5
Definition IContentManager.h:5
Definition IVersionedContentItemCollection.h:5
Definition Pack.h:27
Definition ContentItemProvider.h:7
Definition IContentHandler.h:7
Definition WorldConverter.h:7
Definition TaskGroup.h:61
Definition UUID.h:7
Definition ContentItem.h:5
Definition ContentSource.h:5
Definition InvalidPacksFilterGroup.h:5
Definition PackContentItem.h:5
Definition RealmPackManagerContentSource.h:5
Definition Content.h:7
Definition RealmId.h:7