LeviLamina
Loading...
Searching...
No Matches
CommonBlockUtilityServiceProvider.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/legacy/facing/Name.h"
8
9// auto generated forward declare list
10// clang-format off
11class AABB;
12class Block;
13class BlockPos;
14class BlockVolumeBase;
15class BoundingBox;
16class ChunkPos;
18class Dimension;
19class Vec3;
20namespace Editor { class RelativeVolumeListBlockVolume; }
21namespace Editor::BlockMask { class BlockMaskList; }
22// clang-format on
23
24namespace Editor::BlockUtils {
25
27public:
28 // virtual functions
29 // NOLINTBEGIN
30 virtual ~CommonBlockUtilityServiceProvider() = default;
31
32 virtual ::std::set<::ChunkPos> getChunksFromAABB(::AABB const&) const = 0;
33
34 virtual bool isChunkLoaded(::ChunkPos const&) const = 0;
35
36 virtual bool isChunkFullyLoaded(::ChunkPos const&) const = 0;
37
38 virtual bool areChunksLoaded(::std::set<::ChunkPos> const&) const = 0;
39
40 virtual bool isAreaLoaded(::AABB const&) const = 0;
41
42 virtual ::Editor::RelativeVolumeListBlockVolume trimVolumeToFitContents(
43 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const,
44 bool,
45 bool,
46 bool,
48 ) = 0;
49
50 virtual ::Editor::RelativeVolumeListBlockVolume findObscuredBlocksWithinVolume(
51 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const
52 ) = 0;
53
54 virtual ::Editor::RelativeVolumeListBlockVolume shrinkWrapVolume(
55 ::std::variant<::BlockVolumeBase const*, ::Editor::RelativeVolumeListBlockVolume const*> const
56 ) = 0;
57
58 virtual bool isLocationInsideDimensionBounds(
59 ::std::variant<
60 ::BlockVolumeBase const*,
62 ::Vec3 const*,
63 ::BoundingBox const*,
64 ::BlockPos const*> const
65 ) = 0;
66
67 virtual ::CompoundBlockVolume getContiguousSelection(
68 int const,
69 ::Facing::Name const&,
70 ::Vec3 const&,
71 bool const,
72 int const,
73 bool const,
74 ::Editor::BlockUtils::ContiguousSelectionType const&,
75 ::std::vector<::std::string> const&
76 ) const = 0;
77
78 virtual bool areBlocksContiguous(
79 ::Editor::BlockUtils::ContiguousSelectionType const&,
80 ::Block const&,
81 ::Block const&,
82 ::std::vector<::std::string> const&
83 ) const = 0;
84
85 virtual ::Vec3 getDeltaFromDirection(::Facing::Name const&) const = 0;
86
87 virtual ::Vec3 getDimensionMinLocation() const = 0;
88
89 virtual ::Vec3 getDimensionMaxLocation() const = 0;
90
91 virtual ::BoundingBox getDimensionLocationBoundingBox() const = 0;
92
93 virtual ::AABB
94 getBoundForContiguousSelection(::Vec3 const&, ::Facing::Name const&, int const, bool const) const = 0;
95
96 virtual bool isBlockExposedInDirection(::Dimension const&, ::Vec3 const&, ::Facing::Name const&) const = 0;
97
98 virtual bool isSameBlockType(::Block const&, ::Block const&) const = 0;
99
100 virtual bool isSameBlockAndProperties(::Block const&, ::Block const&) const = 0;
101
102 virtual bool isBlockTypeInSelectionList(::Block const&, ::std::vector<::std::string> const&) const = 0;
103 // NOLINTEND
104
105public:
106 // virtual function thunks
107 // NOLINTBEGIN
108
109 // NOLINTEND
110};
111
112} // namespace Editor::BlockUtils
Definition AABB.h:18
Definition BlockPos.h:19
Definition BlockVolumeBase.h:13
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
Definition RelativeVolumeListBlockVolume.h:21
Definition Vec3.h:10