48 using StructureProcessorPtr = ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>;
50 using StructureProcessorList =
51 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>;
61 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const = 0;
64 virtual ::BlockPos getSize(::Rotation)
const = 0;
67 virtual bool isLegacyStructure()
const = 0;
97 ::std::reference_wrapper<::StructureTemplate>,
98 ::std::reference_wrapper<::LegacyStructureTemplate>>>
100 ::ll::TypedStorage<8, 24, ::std::vector<::JigsawBlockInfo>> mJigsawMarkers;
111 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const ;
114 virtual ::BlockPos getSize(::Rotation rotation)
const ;
117 virtual bool isLegacyStructure()
const ;
127 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
128 ::std::string
const& location,
129 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
136 MCAPI static ::std::vector<::JigsawBlockInfo> _findJigsawBlocks(
137 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
138 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
146 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
147 ::std::string
const& location,
148 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
155 MCFOLD ::std::vector<::JigsawBlockInfo>
const& $getJigsawMarkers()
const;
157 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
159 MCAPI
bool $isLegacyStructure()
const;
172 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>> mMetadata;
173 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataMutex;
174 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mTemplateOnceFlag;
175 ::ll::TypedStorage<8, 56, ::std::optional<::StructurePoolElement::LazyTemplate>> mTemplate;
176 ::ll::TypedStorage<8, 8, uint64> mMetadataKey;
177 ::ll::TypedStorage<8, 32, ::std::string> mLocation;
178 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager>> mManager;
179 ::ll::TypedStorage<8, 32, ::StructurePoolElementSettings> mSettings;
183 ::gsl::not_null<::std::shared_ptr<
184 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>>
186 ::ll::TypedStorage<1, 1, bool> mValid;
197 virtual ::BlockPos getSize(::Rotation rotation)
const;
200 virtual ::std::vector<::JigsawBlockInfo> getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
203 virtual ::std::vector<::JigsawBlockInfo>
207 virtual ::BoundingBox getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
210 virtual void setProjection(::Projection projection);
213 virtual ::Projection getProjection()
const;
216 virtual ::PostProcessSettings getPostProcessSettings()
const;
225 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
237 ::br::worldgen::JigsawReplacement jigsaw,
238 ::br::worldgen::LiquidSettings liquidSettings
253 virtual void handleDataMarker(
256 ::std::string markerData,
257 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
261 virtual bool isValid()
const;
267 virtual ::StructurePoolElementType type()
const;
270 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> createMetadata()
const;
277 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
278 ::std::string
const& location,
283 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
284 ::std::string
const& location,
285 ::gsl::not_null<::std::shared_ptr<
286 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
288 ::Projection projection
292 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
293 ::std::string
const& location,
294 ::Projection projection,
295 ::PostProcessSettings postProcessSettings
299 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
300 ::std::string
const& location,
301 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
302 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
303 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
304 ::Projection projection,
305 ::PostProcessSettings postProcessSettings
308 MCAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const& _getMetadata()
const;
310 MCAPI uint64 _getMetadataKey()
const;
317 single(::std::string_view location);
321 ::std::string_view location,
322 ::gsl::not_null<::std::shared_ptr<
323 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
329 ::std::string_view location,
330 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
331 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
332 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules
340 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
341 ::std::string
const& location,
346 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
347 ::std::string
const& location,
348 ::gsl::not_null<::std::shared_ptr<
349 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
351 ::Projection projection
355 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
356 ::std::string
const& location,
357 ::Projection projection,
358 ::PostProcessSettings postProcessSettings
362 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
363 ::std::string
const& location,
364 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
365 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
366 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
367 ::Projection projection,
368 ::PostProcessSettings postProcessSettings
381 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
383 MCAPI ::std::vector<::JigsawBlockInfo> $getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
385 MCAPI ::std::vector<::JigsawBlockInfo>
388 MCAPI ::BoundingBox $getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
390 MCAPI
void $setProjection(::Projection projection);
392 MCAPI ::Projection $getProjection()
const;
394 MCAPI ::PostProcessSettings $getPostProcessSettings()
const;
402 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
413 ::br::worldgen::JigsawReplacement jigsaw,
414 ::br::worldgen::LiquidSettings liquidSettings
422 MCAPI
void $handleJigsawBlock(
428 MCAPI
void $handleDataMarker(
431 ::std::string markerData,
432 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
435 MCAPI
bool $isValid()
const;
437 MCFOLD ::StructurePoolElementType $type()
const;
439 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> $createMetadata()
const;