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 ChunkPos;
16class Vec3;
17class WeakEntityRef;
18struct DimensionType;
19namespace Bedrock::PubSub { class Subscription; }
20namespace Editor::Prefabs { class PrefabDBPrefabInstance; }
21namespace Editor::Prefabs { class PrefabDBTemplate; }
22namespace Editor::Prefabs { class VisiblePrefabInstance; }
23namespace Editor::Prefabs { struct PrefabDBInstanceChangeEvent; }
24namespace Editor::Prefabs { struct PrefabDBTemplateChangeEvent; }
25namespace Editor::Prefabs::PrefabDBInstanceLoader::v1 { struct InstanceData; }
26namespace mce { class UUID; }
27// clang-format on
28
29namespace Editor::Prefabs {
30
32public:
33 // virtual functions
34 // NOLINTBEGIN
35 virtual ~PrefabDBServerPlayerServiceProvider() = default;
36
37 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
38 getInstancesInChunk(::DimensionType const& dimension, ::ChunkPos const& chunkPos) const = 0;
39
40 virtual ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> generateVisibleInstanceDataFromPrefabInstance(
42 ) const = 0;
43
44 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> getTemplate(::mce::UUID const& templateId) const = 0;
45
46 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::mce::UUID const& templateId) = 0;
47
48 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::std::string_view name) = 0;
49
50 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> createPrefabTemplate(
51 ::std::string const& name,
52 ::std::string const& displayName,
53 ::std::string const& description,
54 ::std::string const& notes,
55 ::std::vector<::std::string> const& tags
56 ) = 0;
57
58 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> getTemplates() const = 0;
59
60 virtual bool deleteTemplate(::mce::UUID const& templateId) = 0;
61
62 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> cloneTemplate(
64 ::std::string const& newName,
65 ::std::optional<::std::string> const& optNewDisplayName
66 ) = 0;
67
68 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> createPrefabInstance(
70 ::DimensionType const& dimension,
71 ::Vec3 const& position,
72 ::Mirror mirror,
73 ::Rotation rotation
74 ) = 0;
75
76 virtual void deletePrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> instanceRef) = 0;
77
78 virtual ::Bedrock::PubSub::Subscription subscribeToTemplateChanges(
79 ::std::function<void(::Editor::Prefabs::PrefabDBTemplateChangeEvent const&)> callback
80 ) = 0;
81
82 virtual ::Bedrock::PubSub::Subscription subscribeToInstanceChanges(
83 ::std::function<void(::Editor::Prefabs::PrefabDBInstanceChangeEvent const&)> callback
84 ) = 0;
85
86 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
87 getInstance(::DimensionType const& dimension, ::mce::UUID const& instanceId) = 0;
88
89 virtual void findInstancesOfTemplate(
90 ::mce::UUID const& templateId,
92 ) = 0;
93
94 virtual ::Scripting::Result_deprecated<void>
95 applyInstanceSnapshot(::Editor::Prefabs::PrefabDBInstanceLoader::v1::InstanceData const& data) = 0;
96
97 virtual ::Scripting::Result_deprecated<void> deleteInstanceById(::mce::UUID const& instanceId) = 0;
98
99 virtual ::std::optional<::Editor::Prefabs::PrefabDBInstanceLoader::v1::InstanceData>
100 getInstanceSnapshot(::mce::UUID const& instanceId) = 0;
101
102 virtual void bakePrefabInstanceToWorld(
103 ::BlockSource& region,
104 ::BlockPalette const& globalBlockPalette,
106 ::std::optional<::std::string_view> optionalCapturePath,
107 bool& outSuccess
108 ) = 0;
109
110 virtual void bake(
111 ::WeakEntityRef weakPlayerRef,
112 ::std::function<void(bool)> completionCallback,
113 ::std::function<void(::std::string_view)> logger,
114 bool deleteInstancesAfterBake
115 ) = 0;
116
117 virtual void unbake(
118 ::WeakEntityRef weakPlayerRef,
119 ::std::function<void(bool)> completionCallback,
120 ::std::function<void(::std::string_view)> logger
121 ) = 0;
122 // NOLINTEND
123};
124
125} // namespace Editor::Prefabs
Definition Subscription.h:10
Definition BlockPalette.h:18
Definition BlockSource.h:71
Definition ChunkPos.h:13
Definition PrefabDBPrefabInstance.h:24
Definition PrefabDBServerPlayerServiceProvider.h:31
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