LeviLamina
Loading...
Searching...
No Matches
CommonBlockUtilityService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/editor/ContiguousSelectionType.h"
7#include "mc/deps/scripting/runtime/Result_deprecated.h"
8#include "mc/editor/serviceproviders/CommonBlockUtilityServiceProvider.h"
9#include "mc/editor/services/IEditorService.h"
10#include "mc/editor/services/PayloadStoreHelper.h"
11#include "mc/legacy/facing/Name.h"
12
13// auto generated forward declare list
14// clang-format off
15class AABB;
16class Block;
17class BlockPos;
18class BlockSource;
19class BlockVolumeBase;
20class BoundingBox;
21class ChunkPos;
23class Dimension;
24class Vec3;
25namespace Editor { class RelativeVolumeListBlockVolume; }
26namespace Editor { class ServiceProviderCollection; }
27namespace Editor::BlockMask { class BlockMaskList; }
28// clang-format on
29
30namespace Editor::BlockUtils {
31
32class CommonBlockUtilityService : public ::Editor::Services::IEditorService,
35public:
36 // member variables
37 // NOLINTBEGIN
40 // NOLINTEND
41
42public:
43 // prevent constructor by default
44 CommonBlockUtilityService& operator=(CommonBlockUtilityService const&);
45 CommonBlockUtilityService(CommonBlockUtilityService const&);
46 CommonBlockUtilityService();
47
48public:
49 // virtual functions
50 // NOLINTBEGIN
51 virtual ~CommonBlockUtilityService() /*override*/;
52
53 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
54
55 virtual ::Scripting::Result_deprecated<void> ready() /*override*/;
56
57 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
58
59 virtual ::std::string_view getServiceName() const /*override*/;
60
61 virtual ::std::set<::ChunkPos> getChunksFromAABB(::AABB const& aabb) const /*override*/;
62
63 virtual bool isChunkLoaded(::ChunkPos const& pos) const /*override*/;
64
65 virtual bool isChunkFullyLoaded(::ChunkPos const& pos) const /*override*/;
66
67 virtual bool areChunksLoaded(::std::set<::ChunkPos> const& chunks) const /*override*/;
68
69 virtual bool isAreaLoaded(::AABB const& aabb) const /*override*/;
70
71 virtual ::Editor::RelativeVolumeListBlockVolume trimVolumeToFitContents(
72 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const inVolume,
73 bool retainMarqueeAfterTrimming,
74 bool ignoreLiquid,
75 bool ignoreNoCollision,
77 ) /*override*/;
78
79 virtual ::Editor::RelativeVolumeListBlockVolume findObscuredBlocksWithinVolume(
80 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const inVolume
81 ) /*override*/;
82
83 virtual ::Editor::RelativeVolumeListBlockVolume shrinkWrapVolume(
84 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const
85 ) /*override*/;
86
87 virtual bool isLocationInsideDimensionBounds(
88 ::std::variant<
89 ::BlockVolumeBase const*,
91 ::Vec3 const*,
92 ::BoundingBox const*,
93 ::BlockPos const*> const test
94 ) /*override*/;
95
96 virtual ::Vec3 getDimensionMinLocation() const /*override*/;
97
98 virtual ::Vec3 getDimensionMaxLocation() const /*override*/;
99
100 virtual ::BoundingBox getDimensionLocationBoundingBox() const /*override*/;
101
102 virtual ::CompoundBlockVolume getContiguousSelection(
103 int const size,
104 ::Facing::Name const& selectionDirection,
105 ::Vec3 const& startingLocation,
106 bool const isFace,
107 int const fullSelectionToleranceLevel,
108 bool const checkForAdjacentFaceBlocks,
109 ::Editor::BlockUtils::ContiguousSelectionType const& contiguousSelectionType,
110 ::std::vector<::std::string> const& contiguousSelectionBlockList
111 ) const /*override*/;
112
113 virtual bool areBlocksContiguous(
114 ::Editor::BlockUtils::ContiguousSelectionType const& contiguousSelectionType,
115 ::Block const& blockToTest,
116 ::Block const& blockToFollow,
117 ::std::vector<::std::string> const& allowList
118 ) const /*override*/;
119
120 virtual ::Vec3 getDeltaFromDirection(::Facing::Name const& selectionDirection) const /*override*/;
121
122 virtual ::Scripting::Result_deprecated<void> _implInit() = 0;
123
124 virtual ::Scripting::Result_deprecated<void> _implReady() = 0;
125
126 virtual ::Scripting::Result_deprecated<void> _implQuit() = 0;
127
128 virtual ::AABB getBoundForContiguousSelection(
129 ::Vec3 const& initialLocation,
130 ::Facing::Name const& selectionDirection,
131 int const size,
132 bool const isFace
133 ) const /*override*/;
134
135 virtual bool isBlockExposedInDirection(
136 ::Dimension const& dimension,
137 ::Vec3 const& targetLocation,
138 ::Facing::Name const& direction
139 ) const /*override*/;
140
141 virtual bool isSameBlockType(::Block const& blockA, ::Block const& blockB) const /*override*/;
142
143 virtual bool isSameBlockAndProperties(::Block const& blockA, ::Block const& blockB) const /*override*/;
144
145 virtual bool isBlockTypeInSelectionList(::Block const& block, ::std::vector<::std::string> const& allowList) const
146 /*override*/;
147 // NOLINTEND
148
149public:
150 // member functions
151 // NOLINTBEGIN
152#ifdef LL_PLAT_C
153 MCNAPI explicit CommonBlockUtilityService(::Editor::ServiceProviderCollection& providers);
154#endif
155
156 MCNAPI ::BlockSource& _getBlockSource() const;
157
158 MCNAPI ::Dimension& _getDimension() const;
159 // NOLINTEND
160
161public:
162 // constructor thunks
163 // NOLINTBEGIN
164#ifdef LL_PLAT_C
165 MCNAPI void* $ctor(::Editor::ServiceProviderCollection& providers);
166#endif
167 // NOLINTEND
168
169public:
170 // destructor thunk
171 // NOLINTBEGIN
172 MCNAPI void $dtor();
173 // NOLINTEND
174
175public:
176 // virtual function thunks
177 // NOLINTBEGIN
178 MCNAPI ::Scripting::Result_deprecated<void> $init();
179
180 MCNAPI ::Scripting::Result_deprecated<void> $ready();
181
182 MCNAPI ::Scripting::Result_deprecated<void> $quit();
183
184 MCNAPI ::std::string_view $getServiceName() const;
185
186 MCNAPI ::std::set<::ChunkPos> $getChunksFromAABB(::AABB const& aabb) const;
187
188 MCNAPI bool $isChunkLoaded(::ChunkPos const& pos) const;
189
190 MCNAPI bool $isChunkFullyLoaded(::ChunkPos const& pos) const;
191
192 MCNAPI bool $areChunksLoaded(::std::set<::ChunkPos> const& chunks) const;
193
194 MCNAPI bool $isAreaLoaded(::AABB const& aabb) const;
195
196 MCNAPI ::Editor::RelativeVolumeListBlockVolume $trimVolumeToFitContents(
197 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const inVolume,
198 bool retainMarqueeAfterTrimming,
199 bool ignoreLiquid,
200 bool ignoreNoCollision,
202 );
203
204 MCNAPI ::Editor::RelativeVolumeListBlockVolume $findObscuredBlocksWithinVolume(
205 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const inVolume
206 );
207
208 MCNAPI ::Editor::RelativeVolumeListBlockVolume
209 $shrinkWrapVolume(::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const);
210
212 ::std::variant<
213 ::BlockVolumeBase const*,
215 ::Vec3 const*,
216 ::BoundingBox const*,
217 ::BlockPos const*> const test
218 );
219
220 MCNAPI ::Vec3 $getDimensionMinLocation() const;
221
222 MCNAPI ::Vec3 $getDimensionMaxLocation() const;
223
224 MCNAPI ::BoundingBox $getDimensionLocationBoundingBox() const;
225
226 MCNAPI ::CompoundBlockVolume $getContiguousSelection(
227 int const size,
228 ::Facing::Name const& selectionDirection,
229 ::Vec3 const& startingLocation,
230 bool const isFace,
231 int const fullSelectionToleranceLevel,
232 bool const checkForAdjacentFaceBlocks,
233 ::Editor::BlockUtils::ContiguousSelectionType const& contiguousSelectionType,
234 ::std::vector<::std::string> const& contiguousSelectionBlockList
235 ) const;
236
238 ::Editor::BlockUtils::ContiguousSelectionType const& contiguousSelectionType,
239 ::Block const& blockToTest,
240 ::Block const& blockToFollow,
241 ::std::vector<::std::string> const& allowList
242 ) const;
243
244 MCNAPI ::Vec3 $getDeltaFromDirection(::Facing::Name const& selectionDirection) const;
245
247 ::Vec3 const& initialLocation,
248 ::Facing::Name const& selectionDirection,
249 int const size,
250 bool const isFace
251 ) const;
252
254 ::Dimension const& dimension,
255 ::Vec3 const& targetLocation,
256 ::Facing::Name const& direction
257 ) const;
258
259 MCNAPI bool $isSameBlockType(::Block const& blockA, ::Block const& blockB) const;
260
261 MCNAPI bool $isSameBlockAndProperties(::Block const& blockA, ::Block const& blockB) const;
262
263 MCNAPI bool $isBlockTypeInSelectionList(::Block const& block, ::std::vector<::std::string> const& allowList) const;
264
265
266 // NOLINTEND
267
268public:
269 // vftables
270 // NOLINTBEGIN
271 MCNAPI static void** $vftableForIEditorService();
272
274 // NOLINTEND
275};
276
277} // namespace Editor::BlockUtils
Definition AABB.h:18
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition BlockVolumeBase.h:16
Definition Block.h:43
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition CompoundBlockVolume.h:18
Definition Dimension.h:85
Definition BlockMaskList.h:14
Definition CommonBlockUtilityServiceProvider.h:26
MCAPI::CompoundBlockVolume $getContiguousSelection(int const size, ::Facing::Name const &selectionDirection, ::Vec3 const &startingLocation, bool const isFace, int const fullSelectionToleranceLevel, bool const checkForAdjacentFaceBlocks, ::Editor::BlockUtils::ContiguousSelectionType const &contiguousSelectionType, ::std::vector<::std::string > const &contiguousSelectionBlockList) const
MCAPI bool $isBlockExposedInDirection(::Dimension const &dimension, ::Vec3 const &targetLocation, ::Facing::Name const &direction) const
MCAPI::BoundingBox $getDimensionLocationBoundingBox() const
static MCAPI void ** $vftableForCommonBlockUtilityServiceProvider()
MCAPI::Editor::RelativeVolumeListBlockVolume $trimVolumeToFitContents(::std::variant<::BlockVolumeBase const *, ::Editor::RelativeVolumeListBlockVolume const * > const inVolume, bool retainMarqueeAfterTrimming, bool ignoreLiquid, bool ignoreNoCollision, ::Editor::BlockMask::BlockMaskList const &blockMask)
MCAPI::BlockSource & _getBlockSource() const
static MCAPI void ** $vftableForIEditorService()
MCAPI::Editor::RelativeVolumeListBlockVolume $findObscuredBlocksWithinVolume(::std::variant<::BlockVolumeBase const *, ::Editor::RelativeVolumeListBlockVolume const * > const inVolume)
MCAPI ::Scripting::Result_deprecated< void > $init()
MCAPI::Vec3 $getDeltaFromDirection(::Facing::Name const &selectionDirection) const
MCAPI ::Scripting::Result_deprecated< void > $quit()
MCAPI bool $areChunksLoaded(::std::set<::ChunkPos > const &chunks) const
MCAPI ::std::set<::ChunkPos > $getChunksFromAABB(::AABB const &aabb) const
MCAPI bool $isSameBlockType(::Block const &blockA, ::Block const &blockB) const
MCAPI::std::string_view $getServiceName() const
MCAPI bool $areBlocksContiguous(::Editor::BlockUtils::ContiguousSelectionType const &contiguousSelectionType, ::Block const &blockToTest, ::Block const &blockToFollow, ::std::vector<::std::string > const &allowList) const
MCAPI bool $isSameBlockAndProperties(::Block const &blockA, ::Block const &blockB) const
MCAPI bool $isChunkFullyLoaded(::ChunkPos const &pos) const
MCAPI ::Scripting::Result_deprecated< void > $ready()
MCAPI bool $isChunkLoaded(::ChunkPos const &pos) const
MCAPI bool $isAreaLoaded(::AABB const &aabb) const
MCAPI::AABB $getBoundForContiguousSelection(::Vec3 const &initialLocation, ::Facing::Name const &selectionDirection, int const size, bool const isFace) const
MCAPI::Editor::RelativeVolumeListBlockVolume $shrinkWrapVolume(::std::variant<::BlockVolumeBase const *, ::Editor::RelativeVolumeListBlockVolume const * > const)
MCAPI bool $isLocationInsideDimensionBounds(::std::variant< ::BlockVolumeBase const *, ::Editor::RelativeVolumeListBlockVolume const *, ::Vec3 const *, ::BoundingBox const *, ::BlockPos const * > const test)
MCAPI::Dimension & _getDimension() const
MCAPI bool $isBlockTypeInSelectionList(::Block const &block, ::std::vector<::std::string > const &allowList) const
Definition RelativeVolumeListBlockVolume.h:22
Definition ServiceProviderCollection.h:7
Definition IEditorService.h:11
Definition PayloadStoreHelper.h:7
Definition Vec3.h:10
Definition Alias.h:14