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/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;
14class Vec3;
15// clang-format on
16
17class ListBlockVolume : public ::BlockVolumeBase {
18public:
19 // member variables
20 // NOLINTBEGIN
21 ::ll::TypedStorage<8, 64, ::std::unordered_set<::BlockPos>> mBlockPositions;
22 ::ll::TypedStorage<4, 12, ::BlockPos> mMin;
23 ::ll::TypedStorage<4, 12, ::BlockPos> mMax;
24 ::ll::TypedStorage<8, 8, uint64> mChangeCount;
25 // NOLINTEND
26
27public:
28 // prevent constructor by default
29 ListBlockVolume& operator=(ListBlockVolume const&);
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(::std::function<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
57 virtual ~ListBlockVolume() /*override*/ = default;
58 // NOLINTEND
59
60public:
61 // member functions
62 // NOLINTBEGIN
63 MCAPI explicit ListBlockVolume(::std::vector<::BlockPos> const& blockPositions);
64
65 MCAPI ListBlockVolume(::ListBlockVolume const& rhs);
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(::ListBlockVolume const& rhs);
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 MCFOLD int $getCapacity() const;
90
91 MCAPI bool $isInside(::BlockPos const& pos) const;
92
93 MCAPI void $translate(::BlockPos const& delta);
94
95 MCAPI void $forEach(::std::function<bool(::BlockPos const&)> callback) const;
96
97 MCAPI ::std::set<::ChunkPos> $getChunks() const;
98
99 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
100
101 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
102
103
104 // NOLINTEND
105
106public:
107 // vftables
108 // NOLINTBEGIN
109 MCNAPI static void** $vftable();
110 // NOLINTEND
111};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:19
Definition BlockVolumeBase.h:13
Definition BoundingBox.h:13
Definition ChunkPos.h:11
static MCAPI void ** $vftable()
Definition Vec3.h:10