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/utility/NonOwnerPointer.h"
29namespace Core {
class Path; }
31namespace Realms {
struct Content; }
32namespace Realms {
struct RealmId; }
33namespace mce {
class UUID; }
40 virtual ~IContentManagerFactory() =
default;
42 virtual ::std::unique_ptr<::WorldContentSource> createWorldContentSource()
const = 0;
44 virtual ::std::unique_ptr<::WorldTemplateSource> createWorldTemplateSource()
const = 0;
46 virtual ::std::unique_ptr<::InvalidResourceSource>
47 createInvalidResourceSource(::InvalidPacksFilterGroup
const& filter)
const = 0;
49 virtual ::std::unique_ptr<::ContentSource> createWorldPackManagerContentSource(
50 ::std::string
const& worldID,
51 ::Core::PathBuffer<::std::string> worldPath,
53 ::std::vector<::PackManagerContentSourceData>&& data,
54 ::std::weak_ptr<::CachedHostPackIdProvider> provider
57 virtual ::std::unique_ptr<::ContentSource> createRealmPackManagerContentSource(
60 ::std::vector<::PackManagerContentSourceData>&& data
63 virtual ::std::unique_ptr<::ContentSource> createRealmsWorldPackManagerContentSource(
64 ::Realms::RealmId realmId,
65 ::std::vector<::Realms::Content>&& serviceAppliedContent,
67 ::std::vector<::PackManagerContentSourceData>&& data
70 virtual ::std::unique_ptr<::ContentSource> createPackManagerContentSource(
73 ::std::vector<::PackManagerContentSourceData>&& data
76 virtual ::PackSource* getInPackagePackSource(::PackType type)
const = 0;
78 virtual ::PackSource* getDirectoryPackSource(::Core::Path
const& path, ::PackType type)
const = 0;
81 createDirectoryPackSource(::Core::Path
const& path, ::PackType type, ::PackOrigin origin)
const = 0;
84 createWorldTemplatePackSource(::mce::UUID
const&
id, ::PackType type, ::PackOrigin origin)
const = 0;
86 virtual ::IContentCatalogPackSource& createContentCatalogPackSource(
87 ::std::weak_ptr<::ContentManagerUtils::ISourcesAsyncReloader>&& weakSourcesAsyncReloader,
91 virtual ::PackSource& createWorldHistoryPackSource(::Core::Path
const& path, ::PackType type)
const = 0;
93 virtual ::RealmsUnknownPackSources& getRealmsUnknownPackSources()
const = 0;
95 virtual ::std::unique_ptr<::Realms::RealmsServicePackSource> createRealmsServicePackSource(
98 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
101 virtual ::std::unique_ptr<::CompositePackSource>
102 createCompositePackSource(::std::vector<::PackSource*> sources)
const = 0;
104 virtual bool allowsResourcePackDevelopment()
const = 0;
106 virtual ::Bedrock::NonOwnerPointer<::AppPlatform> getPlatform()
const = 0;
Definition CachedHostPackIdProvider.h:5
Definition CompositePackSource.h:16
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