LeviLamina
Loading...
Searching...
No Matches
FeaturePoolElement.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/game_refs/WeakRef.h"
8#include "mc/util/Rotation.h"
9#include "mc/world/level/levelgen/structure/structurepools/JigsawReplacement.h"
10#include "mc/world/level/levelgen/structure/structurepools/StructurePoolElement.h"
11#include "mc/world/level/levelgen/structure/structurepools/StructurePoolElementType.h"
12#include "mc/world/level/levelgen/v2/LiquidSettings.h"
13
14// auto generated forward declare list
15// clang-format off
16class BlockPos;
17class BlockSource;
18class BoundingBox;
19class FeatureRegistry;
20class IFeature;
21class IRandom;
23class JigsawBlockInfo;
25class Random;
27namespace SharedTypes::v1_21_80 { struct JigsawStructureMetadata; }
28// clang-format on
29
30class FeaturePoolElement : public ::StructurePoolElement {
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<8, 24, ::WeakRef<::IFeature>> mFeature;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 FeaturePoolElement();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ::BlockPos getSize(::Rotation rotation) const /*override*/;
45
46 virtual ::std::vector<::JigsawBlockInfo>
47 getJigsawMarkers(::BlockPos position, ::LegacyStructureSettings& settings, ::BlockSource* region) const
48 /*override*/;
49
50 virtual bool place(
51 ::BlockSource& region,
52 ::BlockPos position,
53 ::Rotation rotation,
54 ::BoundingBox chunkBB,
55 ::Random& random,
56 ::std::unordered_map<::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
57 ::BlockPos refPos
58 ) const /*override*/;
59
60 virtual bool place(
61 ::BlockSource& region,
62 ::BlockPos position,
63 ::BlockPos sectionOrigin,
64 ::BoundingBox chunkBB,
65 ::Rotation rotation,
66 ::IRandom& random,
67 ::br::worldgen::JigsawReplacement jigsaw,
68 ::br::worldgen::LiquidSettings liquidSettings
69 ) const /*override*/;
70
71 virtual void placeActors(::BlockSource& region, ::BlockPos position, ::Rotation rotation, ::Random& random) const
72 /*override*/;
73
74 virtual void
75 placeEntities(::BlockSource& region, ::BlockPos position, ::Rotation rotation, ::BoundingBox overlapBB) const
76 /*override*/;
77
78 virtual ::StructurePoolElementType type() const /*override*/;
79
80 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> createMetadata() const /*override*/;
81 // NOLINTEND
82
83public:
84 // member functions
85 // NOLINTBEGIN
86 MCAPI FeaturePoolElement(
87 ::FeatureRegistry& featureRegistry,
88 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> structureManager,
89 ::std::string const& name
90 );
91 // NOLINTEND
92
93public:
94 // constructor thunks
95 // NOLINTBEGIN
96 MCAPI void* $ctor(
97 ::FeatureRegistry& featureRegistry,
98 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> structureManager,
99 ::std::string const& name
100 );
101 // NOLINTEND
102
103public:
104 // virtual function thunks
105 // NOLINTBEGIN
106 MCFOLD ::BlockPos $getSize(::Rotation rotation) const;
107
108 MCAPI ::std::vector<::JigsawBlockInfo>
109 $getJigsawMarkers(::BlockPos position, ::LegacyStructureSettings& settings, ::BlockSource* region) const;
110
111 MCAPI bool $place(
112 ::BlockSource& region,
113 ::BlockPos position,
114 ::Rotation rotation,
115 ::BoundingBox chunkBB,
116 ::Random& random,
117 ::std::unordered_map<::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
118 ::BlockPos refPos
119 ) const;
120
121 MCAPI bool $place(
122 ::BlockSource& region,
123 ::BlockPos position,
124 ::BlockPos sectionOrigin,
125 ::BoundingBox chunkBB,
126 ::Rotation rotation,
127 ::IRandom& random,
128 ::br::worldgen::JigsawReplacement jigsaw,
129 ::br::worldgen::LiquidSettings liquidSettings
130 ) const;
131
132 MCFOLD void $placeActors(::BlockSource& region, ::BlockPos position, ::Rotation rotation, ::Random& random) const;
133
134 MCFOLD void
135 $placeEntities(::BlockSource& region, ::BlockPos position, ::Rotation rotation, ::BoundingBox overlapBB) const;
136
137 MCFOLD ::StructurePoolElementType $type() const;
138
139 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> $createMetadata() const;
140
141
142 // NOLINTEND
143
144public:
145 // vftables
146 // NOLINTBEGIN
147 MCNAPI static void** $vftable();
148 // NOLINTEND
149};
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition BoundingBox.h:13
static MCAPI void ** $vftable()
Definition FeatureRegistry.h:22
Definition IFeature.h:19
Definition IRandom.h:10
Definition IStructureTemplateManager.h:16
Definition JigsawBlockInfo.h:14
Definition LegacyStructureSettings.h:22
Definition Random.h:10
Definition ActorDefinitionIdentifier.h:15
Definition JigsawStructureMetadata.h:16