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/platform/brstd/function_ref.h"
7#include "mc/world/level/BlockPos.h"
8#include "mc/world/level/block/BlockVolumeBase.h"
9
10// auto generated forward declare list
11// clang-format off
13class BoundingBox;
14class ChunkPos;
15namespace cereal { struct ReflectionCtx; }
16// clang-format on
17
19public:
20 // SimpleBlockVolume inner types declare
21 // clang-format off
22 template<typename T0> class allocator;
23 // clang-format on
24
25 // SimpleBlockVolume inner types define
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 enum class IntersectionResult : int {
38 Disjoint = 0,
39 Contains = 1,
40 Intersects = 2,
41 };
42
43 template <typename T0>
44 class allocator {};
45
46 using CornerHandle = uchar;
47
48public:
49 // member variables
50 // NOLINTBEGIN
51 ::ll::TypedStorage<4, 12, ::BlockPos> mFrom;
52 ::ll::TypedStorage<4, 12, ::BlockPos> mTo;
53 // NOLINTEND
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ::BlockPos getMin() const /*override*/;
59
60 virtual ::BlockPos getMax() const /*override*/;
61
62 virtual ::BoundingBox getBoundingBox() const /*override*/;
63
64 virtual ::glm::ivec3 getSpan() const /*override*/;
65
66 virtual int getCapacity() const /*override*/;
67
68 virtual bool isInside(::BlockPos const& pos) const /*override*/;
69
70 virtual void translate(::BlockPos const& delta) /*override*/;
71
72 virtual void forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const /*override*/;
73
74 virtual ::std::set<::ChunkPos> getChunks() const /*override*/;
75
76 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const /*override*/;
77
78 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const /*override*/;
79 // NOLINTEND
80
81public:
82 // member functions
83 // NOLINTBEGIN
84 MCAPI bool doesAreaTouchFaces(::BlockPos const& min, ::BlockPos const& max) const;
85
86 MCAPI ::SimpleBlockVolume::IntersectionResult intersects(::SimpleBlockVolume const& other) const;
87 // NOLINTEND
88
89public:
90 // static functions
91 // NOLINTBEGIN
92 MCAPI static void cerealBindTypes(::cereal::ReflectionCtx& ctx);
93 // NOLINTEND
94
95public:
96 // virtual function thunks
97 // NOLINTBEGIN
98 MCAPI ::BlockPos $getMin() const;
99
100 MCAPI ::BlockPos $getMax() const;
101
102 MCAPI ::BoundingBox $getBoundingBox() const;
103
104 MCAPI ::glm::ivec3 $getSpan() const;
105
106 MCAPI int $getCapacity() const;
107
108 MCAPI bool $isInside(::BlockPos const& pos) const;
109
110 MCAPI void $translate(::BlockPos const& delta);
111
112 MCAPI void $forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const;
113
114 MCAPI ::std::set<::ChunkPos> $getChunks() const;
115
116 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
117
118 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
119
120
121 // NOLINTEND
122
123public:
124 // vftables
125 // NOLINTBEGIN
126 MCAPI static void** $vftable();
127 // NOLINTEND
128};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:21
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:12
Definition SimpleBlockVolume.h:44
Definition SimpleBlockVolume.h:18
STL namespace.
Definition ReflectionCtx.h:11
Definition ctx.h:5