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
15class ContentIdentity;
20class Pack;
21class 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 mce { class UUID; }
33// clang-format on
34
35class IContentManager {
36public:
37 // IContentManager inner types define
38 using ConstContentItemPtr = ::std::shared_ptr<::ContentItem const>;
39
40 using ContentItemPtr = ::std::shared_ptr<::ContentItem>;
41
42 using PackContentItemPtr = ::std::shared_ptr<::PackContentItem>;
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ~IContentManager() = default;
48
49 virtual ::ContentSource* loadContent(::ContentType, ::ContentFlags) = 0;
50
51 virtual ::ContentSource* loadContent(::InvalidPacksFilterGroup const&) = 0;
52
53 virtual ::ContentSource* loadContentForLevel(::std::string const&, ::mce::UUID const&) = 0;
54
55 virtual ::ContentSource* loadContentForRealm(int64 const) = 0;
56
57 virtual ::std::unique_ptr<::ContentSource>
58 loadContentForRealmsWorld(::Realms::RealmId, ::std::vector<::Realms::Content> const&) = 0;
59
60 virtual void addPackSourceFromPremiumTemplate(::RealmPackManagerContentSource*, ::mce::UUID const&, ::PackType) = 0;
61
62 virtual void addRealmsUnknownPackSources(::RealmPackManagerContentSource*) = 0;
63
64 virtual void addPacksToRealmsUnknownPackSource(::std::unique_ptr<::Pack>) = 0;
65
66 virtual void addCachedHostPackIdProvider(::std::weak_ptr<::CachedHostPackIdProvider>) = 0;
67
68 virtual void clearRealmsUnknownPackSource() = 0;
69
70 virtual void removeUnneededItemFromRealmsUnknownContentSource(::mce::UUID const&) = 0;
71
72 virtual ::gsl::not_null<::std::shared_ptr<::ContentItemCollection>> getGlobalResourcePackCollection(bool) = 0;
73
74 virtual ::std::unique_ptr<::IContentManagerContext>
75 createContext(::std::function<bool(::std::shared_ptr<::ContentItem const> const&)>) = 0;
76
77 virtual void removeContext(::IContentManagerContext&) = 0;
78
79 virtual ::std::vector<::std::unique_ptr<::ContentSource>> const& getSources() const = 0;
80
81 virtual ::std::vector<::std::shared_ptr<::ContentItem>> getContentItems() const = 0;
82
83 virtual ::std::shared_ptr<::IVersionedContentItemCollection const> getVersionedItems() const = 0;
84
85 virtual void enableCatalogPackSource() = 0;
86
87 virtual void generateItems(::ContentSource*) = 0;
88
89 virtual ::Bedrock::Threading::Async<void> reloadSources(bool) = 0;
90
91 virtual void reloadItems() = 0;
92
93 virtual void reloadViews() = 0;
94
95 virtual void populateDependencies() const = 0;
96
97 virtual void deleteContent(::std::shared_ptr<::ContentItem const> const&) = 0;
98
99 virtual void deleteContent(::std::vector<::std::shared_ptr<::ContentItem const>> const&) = 0;
100
101 virtual void deleteContentFiles(::std::shared_ptr<::ContentItem const> const&) = 0;
102
103 virtual void deleteContentFiles(::std::vector<::std::shared_ptr<::ContentItem const>> const&) = 0;
104
105 virtual void postDeleteContent(::std::shared_ptr<::ContentItem const> const&) = 0;
106
107 virtual void postDeleteContent(::std::vector<::std::shared_ptr<::ContentItem const>> const&) = 0;
108
109 virtual uint64 generateContentId() = 0;
110
111 virtual ::Core::PathBuffer<::std::string> const getWorldResourcePath(::std::string const&) const = 0;
112
113 virtual ::Core::PathBuffer<::std::string> const getWorldBehaviorPath(::std::string const&) const = 0;
114
115 virtual ::Core::PathBuffer<::std::string> const getWorldResourceFolder(::std::string const&) const = 0;
116
117 virtual ::Core::PathBuffer<::std::string> const getWorldBehaviorFolder(::std::string const&) const = 0;
118
119 virtual ::Core::PathBuffer<::std::string> const getWorldPath(::std::string const&) const = 0;
120
121 virtual ::Core::PathBuffer<::std::string> const& getPremiumWorldTemplateFolder(::ContentIdentity const&) = 0;
122
123 virtual ::ContentManagerProxy* getProxy() = 0;
124
125 virtual void beginAsyncInit(::TaskGroup&) = 0;
126
127 virtual bool isInitialized() const = 0;
128
129 virtual void onLanguageChanged() = 0;
130
131 virtual void refreshContentCatalogPackSource() = 0;
132
133 virtual ::Bedrock::PubSub::Subscription refreshContentCatalogPackSource(::std::function<void()>&&) = 0;
134
135 virtual void onRealmsReset(::Realms::RealmId const) = 0;
136
137 virtual ::Bedrock::NotNullNonOwnerPtr<::Core::FilePathManager> getFilePathManager() = 0;
138
139 virtual ::Bedrock::PubSub::Subscription subscribeToSourcesReloadedAsyncCompleted(::std::function<void()>&&) = 0;
140 // NOLINTEND
141
142public:
143 // virtual function thunks
144 // NOLINTBEGIN
145
146 // NOLINTEND
147};
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 Pack.h:27
Definition TaskGroup.h:53
Definition UUID.h:7
Definition CachedHostPackIdProvider.h:5
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