3#include "mc/_HeaderOutputPredefine.h"
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"
30namespace Realms {
struct Content; }
31namespace Realms {
struct RealmId; }
32namespace mce {
class UUID; }
38 using ConstContentItemPtr = ::std::shared_ptr<::ContentItem const>;
40 using ContentItemPtr = ::std::shared_ptr<::ContentItem>;
42 using PackContentItemPtr = ::std::shared_ptr<::PackContentItem>;
47 virtual ~IContentManager() =
default;
49 virtual ::ContentSource* loadContent(::ContentType, ::ContentFlags) = 0;
51 virtual ::ContentSource* loadContent(::InvalidPacksFilterGroup
const&) = 0;
53 virtual ::ContentSource* loadContentForLevel(::std::string
const&, ::mce::UUID
const&) = 0;
55 virtual ::ContentSource* loadContentForRealm(int64
const) = 0;
57 virtual ::std::unique_ptr<::ContentSource>
58 loadContentForRealmsWorld(::Realms::RealmId, ::std::vector<::Realms::Content>
const&) = 0;
60 virtual void addPackSourceFromPremiumTemplate(::RealmPackManagerContentSource*, ::mce::UUID
const&, ::PackType) = 0;
62 virtual void addRealmsUnknownPackSources(::RealmPackManagerContentSource*) = 0;
64 virtual void addPacksToRealmsUnknownPackSource(::std::unique_ptr<::Pack>) = 0;
66 virtual void addCachedHostPackIdProvider(::std::weak_ptr<::CachedHostPackIdProvider>) = 0;
68 virtual void clearRealmsUnknownPackSource() = 0;
70 virtual void removeUnneededItemFromRealmsUnknownContentSource(::mce::UUID
const&) = 0;
72 virtual ::gsl::not_null<::std::shared_ptr<::ContentItemCollection>> getGlobalResourcePackCollection(
bool) = 0;
74 virtual ::std::unique_ptr<::IContentManagerContext>
75 createContext(::std::function<
bool(::std::shared_ptr<::ContentItem const>
const&)>) = 0;
77 virtual void removeContext(::IContentManagerContext&) = 0;
79 virtual ::std::vector<::std::unique_ptr<::ContentSource>>
const& getSources()
const = 0;
81 virtual ::std::vector<::std::shared_ptr<::ContentItem>> getContentItems()
const = 0;
83 virtual ::std::shared_ptr<::IVersionedContentItemCollection const> getVersionedItems()
const = 0;
85 virtual void enableCatalogPackSource() = 0;
87 virtual void generateItems(::ContentSource*) = 0;
89 virtual ::Bedrock::Threading::Async<void> reloadSources(
bool) = 0;
91 virtual void reloadItems() = 0;
93 virtual void reloadViews() = 0;
95 virtual void populateDependencies()
const = 0;
97 virtual void deleteContent(::std::shared_ptr<::ContentItem const>
const&) = 0;
99 virtual void deleteContent(::std::vector<::std::shared_ptr<::ContentItem const>>
const&) = 0;
101 virtual void deleteContentFiles(::std::shared_ptr<::ContentItem const>
const&) = 0;
103 virtual void deleteContentFiles(::std::vector<::std::shared_ptr<::ContentItem const>>
const&) = 0;
105 virtual void postDeleteContent(::std::shared_ptr<::ContentItem const>
const&) = 0;
107 virtual void postDeleteContent(::std::vector<::std::shared_ptr<::ContentItem const>>
const&) = 0;
109 virtual uint64 generateContentId() = 0;
111 virtual ::Core::PathBuffer<::std::string>
const getWorldResourcePath(::std::string
const&)
const = 0;
113 virtual ::Core::PathBuffer<::std::string>
const getWorldBehaviorPath(::std::string
const&)
const = 0;
115 virtual ::Core::PathBuffer<::std::string>
const getWorldResourceFolder(::std::string
const&)
const = 0;
117 virtual ::Core::PathBuffer<::std::string>
const getWorldBehaviorFolder(::std::string
const&)
const = 0;
119 virtual ::Core::PathBuffer<::std::string>
const getWorldPath(::std::string
const&)
const = 0;
121 virtual ::Core::PathBuffer<::std::string>
const& getPremiumWorldTemplateFolder(::ContentIdentity
const&) = 0;
123 virtual ::ContentManagerProxy* getProxy() = 0;
125 virtual void beginAsyncInit(::TaskGroup&) = 0;
127 virtual bool isInitialized()
const = 0;
129 virtual void onLanguageChanged() = 0;
131 virtual void refreshContentCatalogPackSource() = 0;
133 virtual ::Bedrock::PubSub::Subscription refreshContentCatalogPackSource(::std::function<
void()>&&) = 0;
135 virtual void onRealmsReset(::Realms::RealmId
const) = 0;
137 virtual ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager> getFilePathManager() = 0;
139 virtual ::Bedrock::PubSub::Subscription subscribeToSourcesReloadedAsyncCompleted(::std::function<
void()>&&) = 0;
Definition Subscription.h:10
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 TaskGroup.h:53
Definition CachedHostPackIdProvider.h:5
Definition ContentItem.h:5
Definition ContentSource.h:5
Definition InvalidPacksFilterGroup.h:5
Definition PackContentItem.h:5
Definition RealmPackManagerContentSource.h:5