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/PackOrigin.h"
10#include "mc/deps/core/resource/PackType.h"
11#include "mc/deps/core/threading/Async.h"
12#include "mc/deps/core/utility/NonOwnerPointer.h"
30namespace Core {
class Path; }
32namespace Realms {
struct Content; }
33namespace Realms {
struct RealmId; }
34namespace mce {
class UUID; }
41 virtual ~IContentManagerFactory() =
default;
43 virtual ::std::unique_ptr<::WorldContentSource> createWorldContentSource()
const = 0;
45 virtual ::std::unique_ptr<::WorldTemplateSource> createWorldTemplateSource()
const = 0;
47 virtual ::std::unique_ptr<::InvalidResourceSource>
48 createInvalidResourceSource(::InvalidPacksFilterGroup
const& filter)
const = 0;
50 virtual ::std::unique_ptr<::ContentSource> createWorldPackManagerContentSource(
51 ::std::string
const& worldID,
52 ::Core::PathBuffer<::std::string> worldPath,
54 ::std::vector<::PackManagerContentSourceData>&& data,
55 ::std::weak_ptr<::CachedHostPackIdProvider> provider
58 virtual ::std::unique_ptr<::ContentSource> createRealmPackManagerContentSource(
61 ::std::vector<::PackManagerContentSourceData>&& data
64 virtual ::std::unique_ptr<::ContentSource> createRealmsWorldPackManagerContentSource(
65 ::Realms::RealmId realmId,
66 ::std::vector<::Realms::Content>&& serviceAppliedContent,
68 ::std::vector<::PackManagerContentSourceData>&& data
71 virtual ::std::unique_ptr<::ContentSource> createPackManagerContentSource(
74 ::std::vector<::PackManagerContentSourceData>&& data
77 virtual ::PackSource* getInPackagePackSource(::PackType type)
const = 0;
79 virtual ::PackSource* getDirectoryPackSource(::Core::Path
const& path, ::PackType type)
const = 0;
82 createDirectoryPackSource(::Core::Path
const& path, ::PackType type, ::PackOrigin origin)
const = 0;
85 createWorldTemplatePackSource(::mce::UUID
const&
id, ::PackType type, ::PackOrigin origin)
const = 0;
87 virtual ::IContentCatalogPackSource& createContentCatalogPackSource(
88 ::std::weak_ptr<::ContentManagerUtils::ISourcesAsyncReloader>&& weakSourcesAsyncReloader,
92 virtual ::PackSource& createWorldHistoryPackSource(::Core::Path
const& path, ::PackType type)
const = 0;
94 virtual ::RealmsUnknownPackSources& getRealmsUnknownPackSources()
const = 0;
96 virtual ::std::unique_ptr<::Realms::RealmsServicePackSource> createRealmsServicePackSource(
99 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
102 virtual ::std::unique_ptr<::CompositePackSource>
103 createCompositePackSource(::std::vector<::PackSource*> sources)
const = 0;
105 virtual ::Bedrock::Threading::Async<void> refreshPacksAsync()
const = 0;
107 virtual bool allowsResourcePackDevelopment()
const = 0;
109 virtual ::Bedrock::NonOwnerPointer<::AppPlatform> getPlatform()
const = 0;
Definition CachedHostPackIdProvider.h:5
Definition CompositePackSource.h:17
Definition ISourcesAsyncReloader.h:7
Definition IContentCatalogPackSource.h:5
Definition IContentManagerFactory.h:5
Definition PackSource.h:28
Definition RealmsServicePackSource.h:18
Definition ContentSource.h:5
Definition InvalidPacksFilterGroup.h:5
Definition InvalidResourceSource.h:5
Definition PackManagerContentSourceData.h:5
Definition RealmsUnknownPackSources.h:5
Definition WorldContentSource.h:5
Definition WorldTemplateSource.h:5