LeviLamina
Loading...
Searching...
No Matches
PoolElementStructurePiece.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/Rotation.h"
7#include "mc/world/level/BlockPos.h"
8#include "mc/world/level/levelgen/structure/BoundingBox.h"
9#include "mc/world/level/levelgen/structure/JigsawJunction.h"
10#include "mc/world/level/levelgen/structure/StructurePiece.h"
11#include "mc/world/level/levelgen/v1/AdjustmentEffect.h"
12
13// auto generated forward declare list
14// clang-format off
15class Block;
16class BlockSource;
17class BlockVolume;
18class ChunkPos;
19class Dimension;
20class Random;
23// clang-format on
24
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 24, ::BoundingBox> mCachedPieceBounds;
30 ::ll::TypedStorage<4, 4, int> mCachedPieceBaseY;
31 ::ll::TypedStorage<4, 4, int> mCachedXCenter;
32 ::ll::TypedStorage<4, 4, int> mCachedZCenter;
33 ::ll::TypedStorage<4, 4, float> mCachedMaxRadius;
34 ::ll::TypedStorage<8, 8, ::StructurePoolElement const&> mElement;
35 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
36 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
37 ::ll::TypedStorage<4, 24, ::JigsawJunction> mJigsawJunction;
38 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>>
39 mEntitiesToPlace;
40 ::ll::TypedStorage<4, 12, ::BlockPos> mRefPos;
41 // NOLINTEND
42
43public:
44 // prevent constructor by default
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 // vIndex: 4
53 virtual bool postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
54
55 // vIndex: 5
56 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
57
58 // vIndex: 1
59 virtual void moveBoundingBox(int dx, int dy, int dz) /*override*/;
60
61 // vIndex: 13
62 virtual int generateHeightAtPosition(
63 ::BlockPos const&,
66 ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::std::vector<short>>>&
67 ) const = 0;
68
69 // vIndex: 14
70 virtual ::Block const* getSupportBlock(::BlockSource&, ::BlockPos const&, ::Block const&) const = 0;
71
72 // vIndex: 15
73 virtual ::Block const& getBeardStabilizeBlock(::Block const&) const = 0;
74
75 // vIndex: 16
76 virtual ::AdjustmentEffect getTerrainAdjustmentEffect() const = 0;
77
78 // vIndex: 17
79 virtual bool _needsPostProcessing(::BlockSource& region);
80
81 // vIndex: 0
82 virtual ~PoolElementStructurePiece() /*override*/ = default;
83 // NOLINTEND
84
85public:
86 // virtual function thunks
87 // NOLINTBEGIN
88 MCAPI bool $postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
89
90 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
91
92 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
93
94 MCFOLD bool $_needsPostProcessing(::BlockSource& region);
95 // NOLINTEND
96
97public:
98 // vftables
99 // NOLINTBEGIN
100 MCNAPI static void** $vftable();
101 // NOLINTEND
102};
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockVolume.h:13
Definition Block.h:38
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition Dimension.h:83
Definition PoolElementStructurePiece.h:25
static MCAPI void ** $vftable()
Definition Random.h:11
Definition StructurePiece.h:18
Definition StructurePoolElement.h:35
Definition ActorDefinitionIdentifier.h:15