LeviLamina
Loading...
Searching...
No Matches
PrefabDBService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/editor/PrefabSource.h"
7#include "mc/deps/game_refs/StackRefResult.h"
8#include "mc/deps/game_refs/WeakRef.h"
9#include "mc/deps/scripting/runtime/Result_deprecated.h"
10#include "mc/editor/services/IEditorService.h"
11#include "mc/editor/services/PayloadStoreHelper.h"
12#include "mc/server/editor/serviceproviders/PrefabDBServerPlayerServiceProvider.h"
13#include "mc/server/editor/serviceproviders/PrefabDBServiceProvider.h"
14#include "mc/util/Mirror.h"
15#include "mc/util/Rotation.h"
16
17// auto generated forward declare list
18// clang-format off
19class BlockPalette;
20class BlockSource;
21class ChunkPos;
22class Vec3;
23class WeakEntityRef;
24struct DimensionType;
25namespace Bedrock::PubSub { class Subscription; }
26namespace Editor { class EditorManager; }
27namespace Editor { class ServiceProviderCollection; }
28namespace Editor::Prefabs { class PrefabDBPrefabInstance; }
29namespace Editor::Prefabs { class PrefabDBTemplate; }
30namespace Editor::Prefabs { class VisiblePrefabInstance; }
31namespace Editor::Prefabs { struct PrefabDBInstanceChangeEvent; }
32namespace Editor::Prefabs { struct PrefabDBTemplateChangeEvent; }
33namespace mce { class UUID; }
34// clang-format on
35
36namespace Editor::Services {
37
38class PrefabDBService : public ::Editor::Services::IEditorService,
42public:
43 // member variables
44 // NOLINTBEGIN
53 // NOLINTEND
54
55public:
56 // prevent constructor by default
57 PrefabDBService& operator=(PrefabDBService const&);
58 PrefabDBService(PrefabDBService const&);
59 PrefabDBService();
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~PrefabDBService() /*override*/;
65
66 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
67
68 virtual ::Scripting::Result_deprecated<void> ready() /*override*/;
69
70 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
71
72 virtual ::std::string_view getServiceName() const /*override*/;
73
74 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
75 getInstancesInChunk(::DimensionType const& dimension, ::ChunkPos const& chunkPos) const /*override*/;
76
77 virtual ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> generateVisibleInstanceDataFromPrefabInstance(
79 ) const /*override*/;
80
81 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> getTemplate(::mce::UUID const& templateId) const
82 /*override*/;
83
84 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::mce::UUID const& templateId) /*override*/;
85
86 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::std::string_view name) /*override*/;
87
88 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> createPrefabTemplate(
89 ::std::string const& name,
90 ::std::string const& displayName,
91 ::std::string const& description,
92 ::std::string const& notes,
93 ::std::vector<::std::string> const& tags
94 ) /*override*/;
95
96 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> getTemplates() const /*override*/;
97
98 virtual bool deleteTemplate(::mce::UUID const& templateId) /*override*/;
99
100 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> cloneTemplate(
102 ::std::string const& newName,
103 ::std::optional<::std::string> const& optNewDisplayName
104 ) /*override*/;
105
106 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> createPrefabInstance(
108 ::DimensionType const& dimension,
109 ::Vec3 const& position,
110 ::Mirror mirror,
111 ::Rotation rotation
112 ) /*override*/;
113
114 virtual void deletePrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> instanceRef) /*override*/;
115
116 virtual ::Bedrock::PubSub::Subscription subscribeToInstanceChanges(
117 ::std::function<void(::Editor::Prefabs::PrefabDBInstanceChangeEvent const&)> callback
118 ) /*override*/;
119
120 virtual ::Bedrock::PubSub::Subscription subscribeToTemplateChanges(
121 ::std::function<void(::Editor::Prefabs::PrefabDBTemplateChangeEvent const&)> callback
122 ) /*override*/;
123
124 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
125 getInstance(::DimensionType const& dimension, ::mce::UUID const& instanceId) /*override*/;
126
127 virtual void bakePrefabInstanceToWorld(
128 ::BlockSource& region,
129 ::BlockPalette const& globalBlockPalette,
131 ::std::optional<::std::string_view> optionalCapturePath
132 ) /*override*/;
133
134 virtual void bake(
135 ::WeakEntityRef weakPlayerRef,
136 ::std::function<void(bool)> completionCallback,
137 ::std::function<void(::std::string_view)> logger
138 ) /*override*/;
139
140 virtual void unbake(
141 ::WeakEntityRef weakPlayerRef,
142 ::std::function<void(bool)> completionCallback,
143 ::std::function<void(::std::string_view)> logger
144 ) /*override*/;
145 // NOLINTEND
146
147public:
148 // member functions
149 // NOLINTBEGIN
150 MCNAPI explicit PrefabDBService(::Editor::ServiceProviderCollection& serviceProviders);
151
152 MCNAPI bool _buildManifests();
153
154 MCNAPI ::StackRefResult<::Editor::Prefabs::PrefabDBPrefabInstance> _createPrefabInstance(
156 ::DimensionType const& dimension,
157 ::Vec3 const& position,
158 ::Mirror mirror,
159 ::Rotation rotation
160 );
161
162 MCNAPI ::StackRefResult<::Editor::Prefabs::PrefabDBTemplate> _createPrefabTemplate(
163 ::std::string const& name,
164 ::std::string const& displayName,
165 ::std::string const& description,
166 ::std::string const& notes,
167 ::std::vector<::std::string> const& tags,
168 ::Editor::Prefabs::PrefabSource const& source
169 );
170
172
173 MCNAPI void
175
176 MCNAPI void _validateDatabase(::std::vector<::std::string>& outErrors);
177
179 ::mce::UUID const& templateId,
181 );
182 // NOLINTEND
183
184public:
185 // constructor thunks
186 // NOLINTBEGIN
187 MCNAPI void* $ctor(::Editor::ServiceProviderCollection& serviceProviders);
188 // NOLINTEND
189
190public:
191 // destructor thunk
192 // NOLINTBEGIN
193 MCNAPI void $dtor();
194 // NOLINTEND
195
196public:
197 // virtual function thunks
198 // NOLINTBEGIN
199 MCNAPI ::Scripting::Result_deprecated<void> $init();
200
201 MCNAPI ::Scripting::Result_deprecated<void> $ready();
202
203 MCNAPI ::Scripting::Result_deprecated<void> $quit();
204
205 MCNAPI ::std::string_view $getServiceName() const;
206
207 MCNAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
208 $getInstancesInChunk(::DimensionType const& dimension, ::ChunkPos const& chunkPos) const;
209
210 MCNAPI ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> $generateVisibleInstanceDataFromPrefabInstance(
212 ) const;
213
214 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> $getTemplate(::mce::UUID const& templateId) const;
215
216 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> $getTemplate(::mce::UUID const& templateId);
217
218 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> $getTemplate(::std::string_view name);
219
220 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> $createPrefabTemplate(
221 ::std::string const& name,
222 ::std::string const& displayName,
223 ::std::string const& description,
224 ::std::string const& notes,
225 ::std::vector<::std::string> const& tags
226 );
227
228 MCNAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> $getTemplates() const;
229
230 MCNAPI bool $deleteTemplate(::mce::UUID const& templateId);
231
232 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> $cloneTemplate(
234 ::std::string const& newName,
235 ::std::optional<::std::string> const& optNewDisplayName
236 );
237
238 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> $createPrefabInstance(
240 ::DimensionType const& dimension,
241 ::Vec3 const& position,
242 ::Mirror mirror,
243 ::Rotation rotation
244 );
245
247
248 MCNAPI ::Bedrock::PubSub::Subscription
250
251 MCNAPI ::Bedrock::PubSub::Subscription
253
254 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
255 $getInstance(::DimensionType const& dimension, ::mce::UUID const& instanceId);
256
258 ::BlockSource& region,
259 ::BlockPalette const& globalBlockPalette,
261 ::std::optional<::std::string_view> optionalCapturePath
262 );
263
264 MCNAPI void $bake(
265 ::WeakEntityRef weakPlayerRef,
266 ::std::function<void(bool)> completionCallback,
267 ::std::function<void(::std::string_view)> logger
268 );
269
270 MCNAPI void $unbake(
271 ::WeakEntityRef weakPlayerRef,
272 ::std::function<void(bool)> completionCallback,
273 ::std::function<void(::std::string_view)> logger
274 );
275
276
277 // NOLINTEND
278
279public:
280 // vftables
281 // NOLINTBEGIN
283
285
286 MCNAPI static void** $vftableForIEditorService();
287 // NOLINTEND
288};
289
290} // namespace Editor::Services
Definition Subscription.h:10
Definition BlockPalette.h:21
Definition BlockSource.h:73
Definition ChunkPos.h:11
Definition EditorManager.h:31
Definition PrefabDBPrefabInstance.h:27
Definition PrefabDBServerPlayerServiceProvider.h:29
Definition PrefabDBServiceProvider.h:17
Definition PrefabDBTemplate.h:28
Definition VisiblePrefabInstance.h:19
Definition ServiceProviderCollection.h:7
Definition IEditorService.h:11
Definition PayloadStoreHelper.h:7
MCAPI PrefabDBService(::Editor::ServiceProviderCollection &serviceProviders)
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate > $createPrefabTemplate(::std::string const &name, ::std::string const &displayName, ::std::string const &description, ::std::string const &notes, ::std::vector<::std::string > const &tags)
MCAPI ::StackRefResult<::Editor::Prefabs::PrefabDBPrefabInstance > _createPrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBTemplate > prefabTemplateRef, ::DimensionType const &dimension, ::Vec3 const &position, ::Mirror mirror, ::Rotation rotation)
MCAPI void $bakePrefabInstanceToWorld(::BlockSource &region, ::BlockPalette const &globalBlockPalette, ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > instanceRef, ::std::optional<::std::string_view > optionalCapturePath)
MCAPI void findInstancesOfTemplate(::mce::UUID const &templateId, ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > > &outInstances)
static MCAPI void ** $vftableForPrefabDBServerPlayerServiceProvider()
static MCAPI void ** $vftableForIEditorService()
MCAPI ::Scripting::Result_deprecated< void > $quit()
MCAPI::Bedrock::PubSub::Subscription $subscribeToInstanceChanges(::std::function< void(::Editor::Prefabs::PrefabDBInstanceChangeEvent const &)> callback)
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate > $getTemplate(::mce::UUID const &templateId)
MCAPI ::std::optional<::Editor::Prefabs::VisiblePrefabInstance > $generateVisibleInstanceDataFromPrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance const > instanceRef) const
MCAPI ::Scripting::Result_deprecated< void > $ready()
MCAPI void _validateDatabase(::std::vector<::std::string > &outErrors)
MCAPI void $bake(::WeakEntityRef weakPlayerRef, ::std::function< void(bool)> completionCallback, ::std::function< void(::std::string_view)> logger)
MCAPI void _propagateDirtyTemplateChangesToInstances(::WeakRef<::Editor::Prefabs::PrefabDBTemplate > templateWeakRef)
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > $getInstance(::DimensionType const &dimension, ::mce::UUID const &instanceId)
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const > $getTemplate(::mce::UUID const &templateId) const
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate > $cloneTemplate(::WeakRef<::Editor::Prefabs::PrefabDBTemplate const > templateToCopyRef, ::std::string const &newName, ::std::optional<::std::string > const &optNewDisplayName)
MCAPI bool $deleteTemplate(::mce::UUID const &templateId)
MCAPI void $unbake(::WeakEntityRef weakPlayerRef, ::std::function< void(bool)> completionCallback, ::std::function< void(::std::string_view)> logger)
MCAPI void _onTickEvent(::Editor::EditorManager &)
MCAPI::std::string_view $getServiceName() const
MCAPI ::Scripting::Result_deprecated< void > $init()
MCAPI ::StackRefResult<::Editor::Prefabs::PrefabDBTemplate > _createPrefabTemplate(::std::string const &name, ::std::string const &displayName, ::std::string const &description, ::std::string const &notes, ::std::vector<::std::string > const &tags, ::Editor::Prefabs::PrefabSource const &source)
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > $createPrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBTemplate > prefabTemplateRef, ::DimensionType const &dimension, ::Vec3 const &position, ::Mirror mirror, ::Rotation rotation)
MCAPI::Bedrock::PubSub::Subscription $subscribeToTemplateChanges(::std::function< void(::Editor::Prefabs::PrefabDBTemplateChangeEvent const &)> callback)
static MCAPI void ** $vftableForPrefabDBServiceProvider()
MCAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate > $getTemplate(::std::string_view name)
MCAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const > > $getTemplates() const
MCAPI void $deletePrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > instanceRef)
MCAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > > $getInstancesInChunk(::DimensionType const &dimension, ::ChunkPos const &chunkPos) const
MCAPI void * $ctor(::Editor::ServiceProviderCollection &serviceProviders)
Definition Vec3.h:10
Definition WeakEntityRef.h:14
Definition WeakRef.h:8
Definition UUID.h:7
Definition DimensionType.h:5
Definition PrefabDBInstanceChangeEvent.h:7
Definition PrefabDBTemplateChangeEvent.h:7
Definition Alias.h:14