39class StructurePoolElement {
54 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const = 0;
56 virtual ::BlockPos getSize(::Rotation)
const = 0;
58 virtual bool isLegacyStructure()
const = 0;
88 ::std::reference_wrapper<::StructureTemplate>,
89 ::std::reference_wrapper<::LegacyStructureTemplate>>>
91 ::ll::TypedStorage<8, 24, ::std::vector<::JigsawBlockInfo>> mJigsawMarkers;
101 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const ;
103 virtual ::BlockPos getSize(::Rotation rotation)
const ;
105 virtual bool isLegacyStructure()
const ;
107 virtual ~LazyTemplate() =
default;
114 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
115 ::std::string
const& location,
116 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
123 MCAPI static ::std::vector<::JigsawBlockInfo> _findJigsawBlocks(
124 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
125 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
133 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
134 ::std::string
const& location,
135 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
142 MCFOLD ::std::vector<::JigsawBlockInfo>
const& $getJigsawMarkers()
const;
144 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
146 MCAPI
bool $isLegacyStructure()
const;
158 using StructureProcessorList =
159 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>;
161 using StructureProcessorPtr = ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>;
166 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>> mMetadata;
167 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataMutex;
168 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mTemplateOnceFlag;
169 ::ll::TypedStorage<8, 56, ::std::optional<::StructurePoolElement::LazyTemplate>> mTemplate;
170 ::ll::TypedStorage<8, 8, uint64> mMetadataKey;
171 ::ll::TypedStorage<8, 32, ::std::string> mLocation;
172 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager>> mManager;
173 ::ll::TypedStorage<8, 32, ::StructurePoolElementSettings> mSettings;
177 ::gsl::not_null<::std::shared_ptr<
178 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>>
180 ::ll::TypedStorage<1, 1, bool> mValid;
185 StructurePoolElement();
190 virtual ::BlockPos getSize(::Rotation rotation)
const;
192 virtual ::std::vector<::JigsawBlockInfo> getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
194 virtual ::std::vector<::JigsawBlockInfo>
197 virtual ::BoundingBox getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
199 virtual void setProjection(::Projection projection);
201 virtual ::Projection getProjection()
const;
203 virtual ::PostProcessSettings getPostProcessSettings()
const;
211 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
222 ::br::worldgen::JigsawReplacement jigsaw,
223 ::br::worldgen::LiquidSettings liquidSettings
234 virtual void handleDataMarker(
237 ::std::string markerData,
238 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
241 virtual bool isValid()
const;
243 virtual ~StructurePoolElement();
245 virtual ::StructurePoolElementType type()
const;
247 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> createMetadata()
const;
253 MCAPI StructurePoolElement(
254 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
255 ::std::string
const& location,
259 MCAPI StructurePoolElement(
260 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
261 ::std::string
const& location,
262 ::gsl::not_null<::std::shared_ptr<
263 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
265 ::Projection projection
268 MCAPI StructurePoolElement(
269 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
270 ::std::string
const& location,
271 ::Projection projection,
272 ::PostProcessSettings postProcessSettings
275 MCAPI StructurePoolElement(
276 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
277 ::std::string
const& location,
278 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
279 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
280 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
281 ::Projection projection,
282 ::PostProcessSettings postProcessSettings
285 MCAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const& _getMetadata()
const;
287 MCAPI uint64 _getMetadataKey()
const;
294 single(::std::string_view location);
298 ::std::string_view location,
299 ::gsl::not_null<::std::shared_ptr<
300 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
309 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
310 ::std::string
const& location,
315 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
316 ::std::string
const& location,
317 ::gsl::not_null<::std::shared_ptr<
318 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
320 ::Projection projection
324 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
325 ::std::string
const& location,
326 ::Projection projection,
327 ::PostProcessSettings postProcessSettings
331 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
332 ::std::string
const& location,
333 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
334 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
335 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
336 ::Projection projection,
337 ::PostProcessSettings postProcessSettings
350 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
352 MCAPI ::std::vector<::JigsawBlockInfo> $getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
354 MCAPI ::std::vector<::JigsawBlockInfo>
357 MCAPI ::BoundingBox $getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
359 MCAPI
void $setProjection(::Projection projection);
361 MCAPI ::Projection $getProjection()
const;
363 MCAPI ::PostProcessSettings $getPostProcessSettings()
const;
371 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
382 ::br::worldgen::JigsawReplacement jigsaw,
383 ::br::worldgen::LiquidSettings liquidSettings
391 MCAPI
void $handleJigsawBlock(
397 MCAPI
void $handleDataMarker(
400 ::std::string markerData,
401 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
404 MCAPI
bool $isValid()
const;
406 MCFOLD ::StructurePoolElementType $type()
const;
408 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> $createMetadata()
const;