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/core/utility/AutomaticID.h"
7#include "mc/deps/game_refs/WeakRef.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 Dimension;
17class Vec3;
18class WeakEntityRef;
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 mce { class UUID; }
26// clang-format on
27
28namespace Editor::Prefabs {
29
31public:
32 // virtual functions
33 // NOLINTBEGIN
34 virtual ~PrefabDBServerPlayerServiceProvider() = default;
35
36 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>>
37 getInstancesInChunk(::DimensionType const&, ::ChunkPos const&) const = 0;
38
39 virtual ::std::optional<::Editor::Prefabs::VisiblePrefabInstance> generateVisibleInstanceDataFromPrefabInstance(
41 ) const = 0;
42
43 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate const> getTemplate(::mce::UUID const&) const = 0;
44
45 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::mce::UUID const&) = 0;
46
47 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> getTemplate(::std::string_view) = 0;
48
49 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> createPrefabTemplate(
50 ::std::string const&,
51 ::std::string const&,
52 ::std::string const&,
53 ::std::string const&,
54 ::std::vector<::std::string> const&
55 ) = 0;
56
57 virtual ::std::vector<::WeakRef<::Editor::Prefabs::PrefabDBTemplate const>> getTemplates() const = 0;
58
59 virtual bool deleteTemplate(::mce::UUID const&) = 0;
60
61 virtual ::WeakRef<::Editor::Prefabs::PrefabDBTemplate> cloneTemplate(
63 ::std::string const&,
64 ::std::optional<::std::string> const&
65 ) = 0;
66
67 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance> createPrefabInstance(
69 ::DimensionType const&,
70 ::Vec3 const&,
71 ::Mirror,
72 ::Rotation
73 ) = 0;
74
75 virtual void deletePrefabInstance(::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>) = 0;
76
77 virtual ::Bedrock::PubSub::Subscription
78 subscribeToTemplateChanges(::std::function<void(::Editor::Prefabs::PrefabDBTemplateChangeEvent const&)>) = 0;
79
80 virtual ::Bedrock::PubSub::Subscription
81 subscribeToInstanceChanges(::std::function<void(::Editor::Prefabs::PrefabDBInstanceChangeEvent const&)>) = 0;
82
83 virtual ::WeakRef<::Editor::Prefabs::PrefabDBPrefabInstance>
84 getInstance(::DimensionType const&, ::mce::UUID const&) = 0;
85
86 virtual void bakePrefabInstanceToWorld(
88 ::BlockPalette const&,
90 ::std::optional<::std::string_view>
91 ) = 0;
92
93 virtual void bake(::WeakEntityRef, ::std::function<void(bool)>, ::std::function<void(::std::string_view)>) = 0;
94
95 virtual void unbake(::WeakEntityRef, ::std::function<void(bool)>, ::std::function<void(::std::string_view)>) = 0;
96 // NOLINTEND
97
98public:
99 // virtual function thunks
100 // NOLINTBEGIN
101
102 // NOLINTEND
103};
104
105} // namespace Editor::Prefabs
Definition Subscription.h:10
Definition BlockPalette.h:19
Definition BlockSource.h:68
Definition ChunkPos.h:11
Definition Dimension.h:85
Definition PrefabDBPrefabInstance.h:25
Definition PrefabDBServerPlayerServiceProvider.h:30
Definition PrefabDBTemplate.h:24
Definition VisiblePrefabInstance.h:7
Definition Vec3.h:10
Definition WeakEntityRef.h:14
Definition WeakRef.h:8
Definition UUID.h:7
Definition PrefabDBInstanceChangeEvent.h:7
Definition PrefabDBTemplateChangeEvent.h:7