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
25class PoolElementStructurePiece : public ::StructurePiece {
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
45 PoolElementStructurePiece& operator=(PoolElementStructurePiece const&);
46 PoolElementStructurePiece(PoolElementStructurePiece const&);
47 PoolElementStructurePiece();
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 virtual bool postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
53
54 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
55
56 virtual void moveBoundingBox(int dx, int dy, int dz) /*override*/;
57
58 virtual int generateHeightAtPosition(
59 ::BlockPos const&,
62 ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::std::vector<short>>>&
63 ) const = 0;
64
65 virtual ::Block const* getSupportBlock(::BlockSource&, ::BlockPos const&, ::Block const&) const = 0;
66
67 virtual ::Block const& getBeardStabilizeBlock(::Block const&) const = 0;
68
69 virtual ::AdjustmentEffect getTerrainAdjustmentEffect() const = 0;
70
71 virtual bool _needsPostProcessing(::BlockSource& region);
72
73 virtual ~PoolElementStructurePiece() /*override*/ = default;
74 // NOLINTEND
75
76public:
77 // virtual function thunks
78 // NOLINTBEGIN
79 MCAPI bool $postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
80
81 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
82
83 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
84
85 MCFOLD bool $_needsPostProcessing(::BlockSource& region);
86
87
88 // NOLINTEND
89
90public:
91 // vftables
92 // NOLINTBEGIN
93 MCNAPI static void** $vftable();
94 // NOLINTEND
95};
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition BlockVolume.h:13
Definition Block.h:43
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition Dimension.h:85
static MCAPI void ** $vftable()
Definition Random.h:10
Definition StructurePiece.h:18
Definition StructurePoolElement.h:39
Definition ActorDefinitionIdentifier.h:15