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& operator=(ListBlockVolume const&);
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
58 virtual ~ListBlockVolume() /*override*/ = default;
59 // NOLINTEND
60
61public:
62 // member functions
63 // NOLINTBEGIN
64 MCAPI explicit ListBlockVolume(::std::vector<::BlockPos> const& blockPositions);
65
66 MCAPI ListBlockVolume(::ListBlockVolume const& rhs);
67
68 MCAPI void insert(::std::vector<::Vec3> const& blockPositions);
69 // NOLINTEND
70
71public:
72 // constructor thunks
73 // NOLINTBEGIN
74 MCAPI void* $ctor(::std::vector<::BlockPos> const& blockPositions);
75
76 MCAPI void* $ctor(::ListBlockVolume const& rhs);
77 // NOLINTEND
78
79public:
80 // virtual function thunks
81 // NOLINTBEGIN
82 MCAPI ::BlockPos $getMin() const;
83
84 MCAPI ::BlockPos $getMax() const;
85
86 MCAPI ::BoundingBox $getBoundingBox() const;
87
88 MCAPI ::glm::ivec3 $getSpan() const;
89
90 MCFOLD int $getCapacity() const;
91
92 MCAPI bool $isInside(::BlockPos const& pos) const;
93
94 MCAPI void $translate(::BlockPos const& delta);
95
96 MCAPI void $forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const;
97
98 MCAPI ::std::set<::ChunkPos> $getChunks() const;
99
100 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
101
102 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
103
104
105 // NOLINTEND
106
107public:
108 // vftables
109 // NOLINTBEGIN
110 MCAPI static void** $vftable();
111 // NOLINTEND
112};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:19
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition Vec3.h:10
Definition function_ref.h:60