Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
PrefabDBServerPlayerServiceProvider.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/game_refs/WeakRef.h"
7#include "mc/deps/script_core/runtime/scripting/Result_deprecated.h"
8#include "mc/util/Mirror.h"
9#include "mc/util/Rotation.h"
10
11// auto generated forward declare list
12// clang-format off
13class BlockPalette;
14class BlockSource;
15class BoundingBox;
16class ChunkPos;
17class Vec3;
18class WeakEntityRef;
19struct DimensionType;
20namespace Bedrock::PubSub { class Subscription; }
21namespace Editor::Prefabs { class PrefabDBPrefabInstance; }
22namespace Editor::Prefabs { class PrefabDBTemplate; }
23namespace Editor::Prefabs { class VisiblePrefabInstance; }
24namespace Editor::Prefabs { struct PrefabDBInstanceChangeEvent; }
25namespace Editor::Prefabs { struct PrefabDBTemplateChangeEvent; }
26namespace Editor::Prefabs::PrefabDBInstanceLoader::v1 { struct InstanceData; }
27namespace mce { class UUID; }
28// clang-format on
29
30namespace Editor::Prefabs {
31
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 virtual ~PrefabDBServerPlayerServiceProvider() = default;
37
38 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
39 getInstancesInChunk(::DimensionType const& dimension, ::ChunkPos const& chunkPos) const = 0;
40
41 virtual ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> generateVisibleInstanceDataFromPrefabInstance(
43 ) const = 0;
44
45 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> getTemplate(::mce::UUID const& templateId) const = 0;
46
47 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::mce::UUID const& templateId) = 0;
48
49 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::std::string_view name) = 0;
50
51 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> createPrefabTemplate(
52 ::std::string const& name,
53 ::std::string const& displayName,
54 ::std::string const& description,
55 ::std::string const& notes,
56 ::std::vector<::std::string> const& tags
57 ) = 0;
58
59 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> getTemplates() const = 0;
60
61 virtual bool deleteTemplate(::mce::UUID const& templateId) = 0;
62
63 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> cloneTemplate(
65 ::std::string const& newName,
66 ::std::optional<::std::string> const& optNewDisplayName
67 ) = 0;
68
69 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> createPrefabInstance(
71 ::DimensionType const& dimension,
72 ::Vec3 const& position,
73 ::Mirror mirror,
74 ::Rotation rotation
75 ) = 0;
76
77 virtual void deletePrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> instanceRef) = 0;
78
79 virtual ::Bedrock::PubSub::Subscription subscribeToTemplateChanges(
80 ::std::function<void(::Editor::Prefabs::PrefabDBTemplateChangeEvent const&)> callback
81 ) = 0;
82
83 virtual ::Bedrock::PubSub::Subscription subscribeToInstanceChanges(
84 ::std::function<void(::Editor::Prefabs::PrefabDBInstanceChangeEvent const&)> callback
85 ) = 0;
86
87 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
88 getInstance(::DimensionType const& dimension, ::mce::UUID const& instanceId) = 0;
89
90 virtual void findInstancesOfTemplate(
91 ::mce::UUID const& templateId,
93 ) = 0;
94
95 virtual ::Scripting::Result_deprecated<void>
96 applyInstanceSnapshot(::Editor::Prefabs::PrefabDBInstanceLoader::v1::InstanceData const& data) = 0;
97
98 virtual ::BoundingBox getPrefabInstanceBounds(::Editor::Prefabs::PrefabDBPrefabInstance const& instance) const = 0;
99
100 virtual ::Scripting::Result_deprecated<void> deleteInstanceById(::mce::UUID const& instanceId) = 0;
101
102 virtual ::std::optional<::Editor::Prefabs::PrefabDBInstanceLoader::v1::InstanceData>
103 getInstanceSnapshot(::mce::UUID const& instanceId) = 0;
104
105 virtual void bakePrefabInstanceToWorld(
106 ::BlockSource& region,
107 ::BlockPalette const& globalBlockPalette,
109 ::std::optional<::std::string_view> optionalCapturePath,
110 bool& outSuccess
111 ) = 0;
112
113 virtual void bake(
114 ::WeakEntityRef weakPlayerRef,
115 ::std::function<void(bool)> completionCallback,
116 ::std::function<void(::std::string_view)> logger,
117 bool deleteInstancesAfterBake
118 ) = 0;
119
120 virtual void unbake(
121 ::WeakEntityRef weakPlayerRef,
122 ::std::function<void(bool)> completionCallback,
123 ::std::function<void(::std::string_view)> logger
124 ) = 0;
125 // NOLINTEND
126};
127
128} // namespace Editor::Prefabs
Definition Subscription.h:10
Definition BlockPalette.h:18
Definition BlockSource.h:72
Definition BoundingBox.h:13
Definition ChunkPos.h:13
Definition PrefabDBPrefabInstance.h:24
Definition PrefabDBServerPlayerServiceProvider.h:32
Definition PrefabDBTemplate.h:24
Definition VisiblePrefabInstance.h:12
Definition Vec3.h:10
Definition WeakEntityRef.h:14
Definition WeakRef.h:8
Definition UUID.h:8
Definition DimensionType.h:5
Definition PrefabDBInstanceChangeEvent.h:7
Definition PrefabDBTemplateChangeEvent.h:7