Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
AnnotationManagerServiceProvider.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
8// auto generated forward declare list
9// clang-format off
10class ChunkPos;
11class Vec3;
12struct ActorUniqueID;
13struct DimensionType;
14namespace Bedrock::PubSub { class Subscription; }
15namespace Editor::Annotations { class AnnotationInstance; }
16namespace Editor::Annotations { class AnnotationMetadata; }
17namespace Editor::Annotations { class TextAnnotationInstance; }
18namespace Editor::Annotations { struct AnnotationChangeEvent; }
19namespace Editor::Annotations { struct TextAnnotationData; }
20namespace mce { class UUID; }
21// clang-format on
22
23namespace Editor::Annotations {
24
26public:
27 // virtual functions
28 // NOLINTBEGIN
29 virtual ~AnnotationManagerServiceProvider() = default;
30
31 virtual ::WeakRef<::Editor::Annotations::TextAnnotationInstance> createTextAnnotation(
32 ::DimensionType const& dimension,
33 ::Vec3 const& position,
35 ) = 0;
36
37 virtual void deleteAnnotation(::mce::UUID const& id) = 0;
38
39 virtual void deleteAnnotations(::std::vector<::mce::UUID> const& ids) = 0;
40
41 virtual ::WeakRef<::Editor::Annotations::AnnotationInstance> getAnnotation(::mce::UUID const& id) = 0;
42
43 virtual ::WeakRef<::Editor::Annotations::AnnotationInstance>
44 acquireLeasedInstance(::mce::UUID const& id, ::ActorUniqueID ownerId) = 0;
45
46 virtual void releaseLeasedInstance(::mce::UUID const& id, ::ActorUniqueID ownerId) = 0;
47
48 virtual void releaseLeasedInstances(::ActorUniqueID ownerId) = 0;
49
50 virtual ::WeakRef<::Editor::Annotations::AnnotationMetadata> getMetadata(::mce::UUID const& id) const = 0;
51
52 virtual ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>> getAllMetadata() const = 0;
53
54 virtual ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>>
55 getMetadataInChunkRange(::std::unordered_set<::ChunkPos> const& chunks, ::DimensionType const& dimension) const = 0;
56
57 virtual ::Bedrock::PubSub::Subscription
58 subscribeToChanges(::std::function<void(::Editor::Annotations::AnnotationChangeEvent const&)> callback) = 0;
59 // NOLINTEND
60};
61
62} // namespace Editor::Annotations
Definition Subscription.h:10
Definition ChunkPos.h:13
Definition AnnotationInstance.h:19
Definition AnnotationManagerServiceProvider.h:25
Definition AnnotationMetadata.h:20
Definition TextAnnotationInstance.h:22
Definition Vec3.h:10
Definition UUID.h:8
Definition ActorUniqueID.h:5
Definition DimensionType.h:5
Definition AnnotationChangeEvent.h:7
Definition TextAnnotationData.h:13