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