39class StructurePoolElement {
54 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const = 0;
56 virtual ::BlockPos getSize(::Rotation rotation)
const = 0;
58 virtual bool isLegacyStructure()
const = 0;
70 ::std::reference_wrapper<::StructureTemplate>,
71 ::std::reference_wrapper<::LegacyStructureTemplate>>>
73 ::ll::TypedStorage<8, 24, ::std::vector<::JigsawBlockInfo>> mJigsawMarkers;
79 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const ;
81 virtual ::BlockPos getSize(::Rotation rotation)
const ;
83 virtual bool isLegacyStructure()
const ;
89 MCAPI static ::std::vector<::JigsawBlockInfo> _findJigsawBlocks(
90 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
91 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
98 MCFOLD ::std::vector<::JigsawBlockInfo>
const& $getJigsawMarkers()
const;
100 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
102 MCAPI
bool $isLegacyStructure()
const;
114 using StructureProcessorList =
115 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>;
117 using StructureProcessorPtr = ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>;
122 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>> mMetadata;
123 ::ll::TypedStorage<8, 80, ::std::mutex> mMetadataMutex;
124 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mTemplateOnceFlag;
125 ::ll::TypedStorage<8, 56, ::std::optional<::StructurePoolElement::LazyTemplate>> mTemplate;
126 ::ll::TypedStorage<8, 8, uint64> mMetadataKey;
127 ::ll::TypedStorage<8, 32, ::std::string> mLocation;
128 ::ll::TypedStorage<8, 32, ::JigsawStructureUtils::StructureElementId> mId;
129 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager>> mManager;
130 ::ll::TypedStorage<8, 32, ::StructurePoolElementSettings> mSettings;
134 ::gsl::not_null<::std::shared_ptr<
135 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>>
137 ::ll::TypedStorage<1, 1, bool> mValid;
142 StructurePoolElement();
147 virtual ::BlockPos getSize(::Rotation rotation)
const;
149 virtual ::std::vector<::JigsawBlockInfo> getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
151 virtual ::std::vector<::JigsawBlockInfo>
154 virtual ::BoundingBox getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
156 virtual void setProjection(::Projection projection);
158 virtual ::Projection getProjection()
const;
160 virtual ::PostProcessSettings getPostProcessSettings()
const;
168 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
179 ::br::worldgen::JigsawReplacement jigsaw,
180 ::br::worldgen::LiquidSettings liquidSettings
191 virtual void handleDataMarker(
194 ::std::string markerData,
195 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
198 virtual bool isValid()
const;
200 virtual ~StructurePoolElement();
202 virtual ::StructurePoolElementType type()
const;
204 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> createMetadata()
const;
210 MCAPI StructurePoolElement(
211 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
212 ::std::string
const& location,
216 MCAPI StructurePoolElement(
217 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
218 ::std::string
const& location,
219 ::gsl::not_null<::std::shared_ptr<
220 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
222 ::Projection projection
225 MCAPI StructurePoolElement(
226 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
227 ::std::string
const& location,
228 ::Projection projection,
229 ::PostProcessSettings postProcessSettings
232 MCAPI StructurePoolElement(
233 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
234 ::std::string
const& location,
235 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
236 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
237 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
238 ::Projection projection,
239 ::PostProcessSettings postProcessSettings
242 MCAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const& _getMetadata()
const;
244 MCAPI uint64 _getMetadataKey()
const;
255 single(::std::string_view location, ::std::string
id);
259 ::std::string_view location,
260 ::gsl::not_null<::std::shared_ptr<
261 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
270 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
271 ::std::string
const& location,
276 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
277 ::std::string
const& location,
278 ::gsl::not_null<::std::shared_ptr<
279 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
281 ::Projection projection
285 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
286 ::std::string
const& location,
287 ::Projection projection,
288 ::PostProcessSettings postProcessSettings
292 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
293 ::std::string
const& location,
294 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
295 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
296 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
297 ::Projection projection,
298 ::PostProcessSettings postProcessSettings
311 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
313 MCAPI ::std::vector<::JigsawBlockInfo> $getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
315 MCAPI ::std::vector<::JigsawBlockInfo>
318 MCAPI ::BoundingBox $getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
320 MCAPI
void $setProjection(::Projection projection);
323 MCAPI ::Projection $getProjection()
const;
325 MCFOLD ::Projection $getProjection()
const;
328 MCAPI ::PostProcessSettings $getPostProcessSettings()
const;
336 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
347 ::br::worldgen::JigsawReplacement jigsaw,
348 ::br::worldgen::LiquidSettings liquidSettings
356 MCAPI
void $handleJigsawBlock(
362 MCAPI
void $handleDataMarker(
365 ::std::string markerData,
366 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
369 MCAPI
bool $isValid()
const;
371 MCFOLD ::StructurePoolElementType $type()
const;
373 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> $createMetadata()
const;