3#include "mc/_HeaderOutputPredefine.h"
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"
33namespace mce {
class UUID; }
36namespace Editor::Services {
57 PrefabDBService& operator=(PrefabDBService
const&);
58 PrefabDBService(PrefabDBService
const&);
64 virtual ~PrefabDBService() ;
66 virtual ::Scripting::Result_deprecated<void> init() ;
68 virtual ::Scripting::Result_deprecated<void> ready() ;
70 virtual ::Scripting::Result_deprecated<void> quit() ;
72 virtual ::std::string_view getServiceName()
const ;
74 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
77 virtual ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> generateVisibleInstanceDataFromPrefabInstance(
81 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> getTemplate(
::mce::UUID const& templateId)
const
84 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(
::mce::UUID const& templateId) ;
86 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::std::string_view name) ;
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
96 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> getTemplates()
const ;
98 virtual bool deleteTemplate(
::mce::UUID const& templateId) ;
100 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> cloneTemplate(
102 ::std::string
const& newName,
103 ::std::optional<::std::string>
const& optNewDisplayName
106 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> createPrefabInstance(
116 virtual ::Bedrock::PubSub::Subscription subscribeToInstanceChanges(
120 virtual ::Bedrock::PubSub::Subscription subscribeToTemplateChanges(
124 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
127 virtual void bakePrefabInstanceToWorld(
131 ::std::optional<::std::string_view> optionalCapturePath
136 ::std::function<
void(
bool)> completionCallback,
137 ::std::function<
void(::std::string_view)> logger
142 ::std::function<
void(
bool)> completionCallback,
143 ::std::function<
void(::std::string_view)> logger
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
199 MCNAPI ::Scripting::Result_deprecated<void>
$init();
201 MCNAPI ::Scripting::Result_deprecated<void>
$ready();
203 MCNAPI ::Scripting::Result_deprecated<void>
$quit();
207 MCNAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
218 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBTemplate>
$getTemplate(::std::string_view name);
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
228 MCNAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>>
$getTemplates()
const;
234 ::std::string
const& newName,
235 ::std::optional<::std::string>
const& optNewDisplayName
248 MCNAPI ::Bedrock::PubSub::Subscription
251 MCNAPI ::Bedrock::PubSub::Subscription
254 MCNAPI ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
261 ::std::optional<::std::string_view> optionalCapturePath
266 ::std::function<
void(
bool)> completionCallback,
267 ::std::function<
void(::std::string_view)> logger
272 ::std::function<
void(
bool)> completionCallback,
273 ::std::function<
void(::std::string_view)> logger
Definition Subscription.h:10
Definition BlockPalette.h:21
Definition BlockSource.h:73
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 ¬es, ::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 ®ion, ::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 ¬es, ::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 bool _buildManifests()
MCAPI ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance > > $getInstancesInChunk(::DimensionType const &dimension, ::ChunkPos const &chunkPos) const
MCAPI void * $ctor(::Editor::ServiceProviderCollection &serviceProviders)
Definition WeakEntityRef.h:14
Definition DimensionType.h:5
Definition PrefabDBInstanceChangeEvent.h:7
Definition PrefabDBTemplateChangeEvent.h:7