LeviLamina
Loading...
Searching...
No Matches
ListBlockVolume.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;
16class Vec3;
17// clang-format on
18
19class ListBlockVolume : public ::BlockVolumeBase {
20public:
21 // member variables
22 // NOLINTBEGIN
23 ::ll::TypedStorage<8, 64, ::std::unordered_set<::BlockPos>> mBlockPositions;
24 ::ll::TypedStorage<4, 12, ::BlockPos> mMin;
25 ::ll::TypedStorage<4, 12, ::BlockPos> mMax;
26 ::ll::TypedStorage<8, 8, uint64> mChangeCount;
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 ListBlockVolume();
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 virtual ::BlockPos getMin() const /*override*/;
37
38 virtual ::BlockPos getMax() const /*override*/;
39
40 virtual ::BoundingBox getBoundingBox() const /*override*/;
41
42 virtual ::glm::ivec3 getSpan() const /*override*/;
43
44 virtual int getCapacity() const /*override*/;
45
46 virtual bool isInside(::BlockPos const& pos) const /*override*/;
47
48 virtual void translate(::BlockPos const& delta) /*override*/;
49
50 virtual void forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const /*override*/;
51
52 virtual ::std::set<::ChunkPos> getChunks() const /*override*/;
53
54 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const /*override*/;
55
56 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const /*override*/;
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCAPI explicit ListBlockVolume(::std::vector<::BlockPos> const& blockPositions);
63
64 MCAPI explicit ListBlockVolume(::std::vector<::Vec3> const& blockPositions);
65
66 MCAPI ListBlockVolume(::ListBlockVolume const& rhs);
67
68 MCAPI ::ListBlockVolumeIterator begin() const;
69
70 MCAPI void erase(::std::vector<::Vec3> const& blockPositions);
71
72#ifdef LL_PLAT_S
73 MCFOLD uint64 getChangeCount() const;
74#endif
75
76 MCAPI void insert(::std::vector<::Vec3> const& blockPositions);
77
78 MCAPI ::ListBlockVolume& operator=(::ListBlockVolume const& rhs);
79 // NOLINTEND
80
81public:
82 // constructor thunks
83 // NOLINTBEGIN
84 MCAPI void* $ctor(::std::vector<::BlockPos> const& blockPositions);
85
86 MCAPI void* $ctor(::std::vector<::Vec3> const& blockPositions);
87
88 MCAPI void* $ctor(::ListBlockVolume const& rhs);
89 // NOLINTEND
90
91public:
92 // virtual function thunks
93 // NOLINTBEGIN
94 MCAPI ::BlockPos $getMin() const;
95
96 MCAPI ::BlockPos $getMax() const;
97
98 MCAPI ::BoundingBox $getBoundingBox() const;
99
100 MCAPI ::glm::ivec3 $getSpan() const;
101
102 MCFOLD int $getCapacity() const;
103
104 MCAPI bool $isInside(::BlockPos const& pos) const;
105
106 MCAPI void $translate(::BlockPos const& delta);
107
108 MCAPI void $forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const;
109
110 MCAPI ::std::set<::ChunkPos> $getChunks() const;
111
112 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
113
114 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
115
116
117 // NOLINTEND
118
119public:
120 // vftables
121 // NOLINTBEGIN
122 MCAPI static void** $vftable();
123 // NOLINTEND
124};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:21
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition ListBlockVolumeIterator.h:14
Definition Vec3.h:10
Definition function_ref.h:60