Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
AnnotationManagerService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/deps/game_refs/WeakRef.h"
8#include "mc/deps/script_core/runtime/scripting/Result_deprecated.h"
9#include "mc/editor/AnnotationChangeType.h"
10#include "mc/editor/AnnotationInstanceHandler.h"
11#include "mc/editor/AnnotationManagerServiceProvider.h"
12#include "mc/editor/AnnotationMetadataHandler.h"
13#include "mc/editor/services/IEditorService.h"
14
15// auto generated forward declare list
16// clang-format off
17class ChunkKey;
18class ChunkPos;
19class ChunkSource;
20class HashedString;
21class LevelChunk;
22class Vec3;
23struct ActorUniqueID;
24struct DimensionType;
25namespace Bedrock::PubSub { class Subscription; }
26namespace Editor { class ServiceProviderCollection; }
27namespace Editor::Annotations { class AnnotationInstance; }
28namespace Editor::Annotations { class AnnotationMetadata; }
29namespace Editor::Annotations { class TextAnnotationInstance; }
30namespace Editor::Annotations { struct AnnotationChangeEvent; }
31namespace Editor::Annotations { struct TextAnnotationData; }
32namespace mce { class UUID; }
33// clang-format on
34
35namespace Editor::Services {
36
37class AnnotationManagerService : public ::Editor::Services::IEditorService,
41public:
42 // member variables
43 // NOLINTBEGIN
60 // NOLINTEND
61
62public:
63 // prevent constructor by default
64 AnnotationManagerService& operator=(AnnotationManagerService const&);
65 AnnotationManagerService(AnnotationManagerService const&);
66 AnnotationManagerService();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual ~AnnotationManagerService() /*override*/ = default;
72
73 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
74
75 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
76
77 virtual ::std::string_view getServiceName() const /*override*/;
78
79 virtual ::WeakRef<::Editor::Annotations::TextAnnotationInstance> createTextAnnotation(
80 ::DimensionType const& dimension,
81 ::Vec3 const& position,
83 ) /*override*/;
84
85 virtual void deleteAnnotation(::mce::UUID const& id) /*override*/;
86
87 virtual void deleteAnnotations(::std::vector<::mce::UUID> const& ids) /*override*/;
88
89 virtual ::WeakRef<::Editor::Annotations::AnnotationInstance> getAnnotation(::mce::UUID const& id) /*override*/;
90
91 virtual ::WeakRef<::Editor::Annotations::AnnotationInstance>
92 acquireLeasedInstance(::mce::UUID const& id, ::ActorUniqueID ownerId) /*override*/;
93
94 virtual void releaseLeasedInstance(::mce::UUID const& id, ::ActorUniqueID ownerId) /*override*/;
95
96 virtual void releaseLeasedInstances(::ActorUniqueID ownerId) /*override*/;
97
98 virtual ::WeakRef<::Editor::Annotations::AnnotationMetadata> getMetadata(::mce::UUID const& id) const /*override*/;
99
100 virtual ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>> getAllMetadata() const /*override*/;
101
102 virtual ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>>
103 getMetadataInChunkRange(::std::unordered_set<::ChunkPos> const& chunks, ::DimensionType const& dimension) const
104 /*override*/;
105
106 virtual ::Bedrock::PubSub::Subscription subscribeToChanges(
107 ::std::function<void(::Editor::Annotations::AnnotationChangeEvent const&)> callback
108 ) /*override*/;
109
110 virtual void onUpdate(::Editor::Annotations::AnnotationMetadata const& metadata) /*override*/;
111
112 virtual void onUpdate(::Editor::Annotations::AnnotationInstance const& instance) /*override*/;
113
114 virtual ::std::optional<::HashedString>
115 validateName(::Editor::Annotations::AnnotationMetadata const& metadata, ::HashedString const& name) /*override*/;
116 // NOLINTEND
117
118public:
119 // member functions
120 // NOLINTBEGIN
124 );
125
126 MCNAPI void _deleteAnnotation(::mce::UUID const& id);
127
128 MCNAPI ::HashedString _getUniqueAnnotationName(::HashedString const& name) const;
129
130 MCNAPI bool _loadInstance(::mce::UUID const& id, ::ChunkKey const& chunkKey, bool chunkLoaded);
131
132 MCNAPI void _onChunkDiscarded(::LevelChunk& chunk);
133
134 MCNAPI void _onChunkLoaded(::ChunkSource&, ::LevelChunk& chunk, int);
135
136 MCNAPI void _publishUpdate(::mce::UUID const& id, ::Editor::Annotations::AnnotationChangeType type);
137
138 MCNAPI bool _saveAndRemoveInstance(::mce::UUID const& id);
139
141
142 MCNAPI void _updateMetadataIndex(::mce::UUID const& id);
143
145 // NOLINTEND
146
147public:
148 // static variables
149 // NOLINTBEGIN
150 MCNAPI static ::std::string_view const& serviceName();
151 // NOLINTEND
152
153public:
154 // constructor thunks
155 // NOLINTBEGIN
156 MCNAPI void*
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCNAPI ::Scripting::Result_deprecated<void> $init();
164
165 MCNAPI ::Scripting::Result_deprecated<void> $quit();
166
167 MCNAPI ::std::string_view $getServiceName() const;
168
169 MCNAPI ::WeakRef<::Editor::Annotations::TextAnnotationInstance> $createTextAnnotation(
170 ::DimensionType const& dimension,
171 ::Vec3 const& position,
173 );
174
175 MCNAPI void $deleteAnnotation(::mce::UUID const& id);
176
177 MCNAPI void $deleteAnnotations(::std::vector<::mce::UUID> const& ids);
178
179 MCNAPI ::WeakRef<::Editor::Annotations::AnnotationInstance> $getAnnotation(::mce::UUID const& id);
180
181 MCNAPI ::WeakRef<::Editor::Annotations::AnnotationInstance>
183
184 MCNAPI void $releaseLeasedInstance(::mce::UUID const& id, ::ActorUniqueID ownerId);
185
187
188 MCNAPI ::WeakRef<::Editor::Annotations::AnnotationMetadata> $getMetadata(::mce::UUID const& id) const;
189
190 MCNAPI ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>> $getAllMetadata() const;
191
192 MCNAPI ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata>>
193 $getMetadataInChunkRange(::std::unordered_set<::ChunkPos> const& chunks, ::DimensionType const& dimension) const;
194
195 MCNAPI ::Bedrock::PubSub::Subscription
197
199
201
202 MCNAPI ::std::optional<::HashedString>
204
205
206 // NOLINTEND
207};
208
209} // namespace Editor::Services
Definition Subscription.h:10
Definition ChunkKey.h:9
Definition ChunkPos.h:13
Definition ChunkSource.h:37
Definition PathBuffer.h:8
Definition AnnotationInstanceHandler.h:12
Definition AnnotationInstance.h:19
Definition AnnotationManagerServiceProvider.h:25
Definition AnnotationMetadataHandler.h:13
Definition AnnotationMetadata.h:20
Definition TextAnnotationInstance.h:22
Definition ServiceProviderCollection.h:7
MCAPI void _onChunkLoaded(::ChunkSource &, ::LevelChunk &chunk, int)
MCAPI ::std::optional<::HashedString > $validateName(::Editor::Annotations::AnnotationMetadata const &metadata, ::HashedString const &name)
MCAPI void $releaseLeasedInstance(::mce::UUID const &id, ::ActorUniqueID ownerId)
MCAPI bool _saveAndRemoveInstance(::mce::UUID const &id)
MCAPI void * $ctor(::Editor::ServiceProviderCollection &providers, ::Core::PathBuffer<::std::string > annotationPath)
MCAPI void _onChunkDiscarded(::LevelChunk &chunk)
MCAPI void $deleteAnnotations(::std::vector<::mce::UUID > const &ids)
MCAPI ::WeakRef<::Editor::Annotations::AnnotationMetadata > $getMetadata(::mce::UUID const &id) const
MCAPI ::WeakRef<::Editor::Annotations::TextAnnotationInstance > $createTextAnnotation(::DimensionType const &dimension, ::Vec3 const &position, ::Editor::Annotations::TextAnnotationData const &settings)
MCAPI void _publishUpdate(::mce::UUID const &id, ::Editor::Annotations::AnnotationChangeType type)
MCAPI ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata > > $getMetadataInChunkRange(::std::unordered_set<::ChunkPos > const &chunks, ::DimensionType const &dimension) const
MCAPI bool _writeData(::Editor::Annotations::AnnotationInstance const &instance)
MCAPI ::Scripting::Result_deprecated< void > $quit()
MCAPI bool _loadInstance(::mce::UUID const &id, ::ChunkKey const &chunkKey, bool chunkLoaded)
MCAPI ::WeakRef<::Editor::Annotations::AnnotationInstance > $acquireLeasedInstance(::mce::UUID const &id, ::ActorUniqueID ownerId)
MCAPI void _deleteAnnotation(::mce::UUID const &id)
static MCAPI ::std::string_view const & serviceName()
MCAPI::Bedrock::PubSub::Subscription $subscribeToChanges(::std::function< void(::Editor::Annotations::AnnotationChangeEvent const &)> callback)
MCAPI void $deleteAnnotation(::mce::UUID const &id)
MCAPI void _updateMetadataIndex(::mce::UUID const &id)
MCAPI ::Scripting::Result_deprecated< void > $init()
MCAPI void $onUpdate(::Editor::Annotations::AnnotationInstance const &instance)
MCAPI void $onUpdate(::Editor::Annotations::AnnotationMetadata const &metadata)
MCAPI AnnotationManagerService(::Editor::ServiceProviderCollection &providers, ::Core::PathBuffer<::std::string > annotationPath)
MCAPI void $releaseLeasedInstances(::ActorUniqueID ownerId)
MCAPI ::std::vector<::WeakRef<::Editor::Annotations::AnnotationMetadata > > $getAllMetadata() const
MCAPI ::WeakRef<::Editor::Annotations::AnnotationInstance > $getAnnotation(::mce::UUID const &id)
MCAPI::HashedString _getUniqueAnnotationName(::HashedString const &name) const
MCAPI::std::string_view $getServiceName() const
Definition IEditorService.h:11
Definition HashedString.h:5
Definition LevelChunk.h:76
Definition Vec3.h:10
Definition UUID.h:8
Definition ActorUniqueID.h:5
Definition DimensionType.h:5
Definition AnnotationChangeEvent.h:7
Definition TextAnnotationData.h:13
Definition Alias.h:14