LeviLamina
Loading...
Searching...
No Matches
SimpleBlockVolume.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7#include "mc/world/level/block/BlockVolumeBase.h"
8
9// auto generated forward declare list
10// clang-format off
12class BoundingBox;
13class ChunkPos;
14namespace cereal { struct ReflectionCtx; }
15// clang-format on
16
18public:
19 // SimpleBlockVolume inner types define
20 enum class IntersectionResult : int {
21 Disjoint = 0,
22 Contains = 1,
23 Intersects = 2,
24 };
25
26 enum class CornerIndex : uchar {
27 FrontBottomLeft = 0,
28 BackBottomLeft = 1,
29 FrontTopLeft = 2,
30 BackTopLeft = 3,
31 FrontBottomRight = 4,
32 BackBottomRight = 5,
33 FrontTopRight = 6,
34 BackTopRight = 7,
35 };
36
37 using CornerHandle = uchar;
38
39public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<4, 12, ::BlockPos> mFrom;
43 ::ll::TypedStorage<4, 12, ::BlockPos> mTo;
44 // NOLINTEND
45
46public:
47 // virtual functions
48 // NOLINTBEGIN
49 // vIndex: 2
50 virtual ::BlockPos getMin() const /*override*/;
51
52 // vIndex: 3
53 virtual ::BlockPos getMax() const /*override*/;
54
55 // vIndex: 1
56 virtual ::BoundingBox getBoundingBox() const /*override*/;
57
58 // vIndex: 4
59 virtual ::glm::ivec3 getSpan() const /*override*/;
60
61 // vIndex: 5
62 virtual int getCapacity() const /*override*/;
63
64 // vIndex: 6
65 virtual bool isInside(::BlockPos const& pos) const /*override*/;
66
67 // vIndex: 7
68 virtual void translate(::BlockPos const& delta) /*override*/;
69
70 // vIndex: 8
71 virtual void forEach(::std::function<bool(::BlockPos const&)> callback) const /*override*/;
72
73 // vIndex: 9
74 virtual ::std::set<::ChunkPos> getChunks() const /*override*/;
75
76 // vIndex: 10
77 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const /*override*/;
78
79 // vIndex: 11
80 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const /*override*/;
81
82 // vIndex: 0
83 virtual ~SimpleBlockVolume() /*override*/;
84 // NOLINTEND
85
86public:
87 // member functions
88 // NOLINTBEGIN
89 MCAPI bool doesAreaTouchFaces(::BlockPos const& min, ::BlockPos const& max) const;
90
91 MCAPI ::SimpleBlockVolume::IntersectionResult intersects(::SimpleBlockVolume const& other) const;
92 // NOLINTEND
93
94public:
95 // static functions
96 // NOLINTBEGIN
97 MCAPI static void cerealBindTypes(::cereal::ReflectionCtx& ctx);
98 // NOLINTEND
99
100public:
101 // destructor thunk
102 // NOLINTBEGIN
103 MCFOLD void $dtor();
104 // NOLINTEND
105
106public:
107 // virtual function thunks
108 // NOLINTBEGIN
109 MCAPI ::BlockPos $getMin() const;
110
111 MCAPI ::BlockPos $getMax() const;
112
113 MCAPI ::BoundingBox $getBoundingBox() const;
114
115 MCAPI ::glm::ivec3 $getSpan() const;
116
117 MCAPI int $getCapacity() const;
118
119 MCAPI bool $isInside(::BlockPos const& pos) const;
120
121 MCAPI void $translate(::BlockPos const& delta);
122
123 MCAPI void $forEach(::std::function<bool(::BlockPos const&)> callback) const;
124
125 MCAPI ::std::set<::ChunkPos> $getChunks() const;
126
127 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
128
129 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
130 // NOLINTEND
131
132public:
133 // vftables
134 // NOLINTBEGIN
135 MCNAPI static void** $vftable();
136 // NOLINTEND
137};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:17
Definition BlockVolumeBase.h:13
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition SimpleBlockVolume.h:17
static MCAPI void ** $vftable()
Definition ReflectionCtx.h:11
Definition ctx.h:5