44 using StructureProcessorPtr = ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>;
46 using StructureProcessorList =
47 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>;
57 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const = 0;
60 virtual ::BlockPos getSize(::Rotation)
const = 0;
63 virtual bool isLegacyStructure()
const = 0;
103 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const ;
106 virtual ::BlockPos getSize(::Rotation rotation)
const ;
109 virtual bool isLegacyStructure()
const ;
119 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
120 ::std::string
const& location,
121 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
129 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
130 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
138 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
139 ::std::string
const& location,
140 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
149 MCNAPI ::BlockPos
$getSize(::Rotation rotation)
const;
164 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>> mMetadata;
165 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataMutex;
166 ::ll::TypedStorage<8, 8, ::std::once_flag> mTemplateOnceFlag;
167 ::ll::TypedStorage<8, 56, ::std::optional<::StructurePoolElement::LazyTemplate>> mTemplate;
168 ::ll::TypedStorage<8, 8, uint64> mMetadataKey;
169 ::ll::TypedStorage<8, 32, ::std::string> mLocation;
170 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mManager;
171 ::ll::TypedStorage<8, 32, ::StructurePoolElementSettings> mSettings;
175 ::gsl::not_null<::std::shared_ptr<
176 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>>
178 ::ll::TypedStorage<1, 1, bool> mValid;
189 virtual ::BlockPos getSize(::Rotation rotation)
const;
192 virtual ::std::vector<::JigsawBlockInfo> getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
195 virtual ::std::vector<::JigsawBlockInfo>
199 virtual ::BoundingBox getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
202 virtual void setProjection(::Projection projection);
205 virtual ::Projection getProjection()
const;
208 virtual ::PostProcessSettings getPostProcessSettings()
const;
217 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
229 ::br::worldgen::JigsawReplacement jigsaw
244 virtual void handleDataMarker(
247 ::std::string markerData,
248 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
252 virtual bool isValid()
const;
258 virtual ::StructurePoolElementType type()
const;
265 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
266 ::std::string
const& location,
271 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
272 ::std::string
const& location,
273 ::gsl::not_null<::std::shared_ptr<
274 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
276 ::Projection projection
280 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
281 ::std::string
const& location,
282 ::Projection projection,
283 ::PostProcessSettings postProcessSettings
287 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
288 ::std::string
const& location,
289 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
290 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
291 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
292 ::Projection projection,
293 ::PostProcessSettings postProcessSettings
296 MCAPI ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> _createMetadata()
const;
298 MCAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const& _getMetadata()
const;
300 MCAPI uint64 _getMetadataKey()
const;
302 MCAPI ::StructurePoolElement::LazyTemplate
const& _getTemplate()
const;
309 single(::std::string_view location);
313 ::std::string_view location,
314 ::gsl::not_null<::std::shared_ptr<
315 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
321 ::std::string_view location,
322 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
323 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
324 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules
332 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
333 ::std::string
const& location,
338 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
339 ::std::string
const& location,
340 ::gsl::not_null<::std::shared_ptr<
341 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
343 ::Projection projection
347 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
348 ::std::string
const& location,
349 ::Projection projection,
350 ::PostProcessSettings postProcessSettings
354 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> manager,
355 ::std::string
const& location,
356 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
357 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
358 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
359 ::Projection projection,
360 ::PostProcessSettings postProcessSettings
373 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
375 MCAPI ::std::vector<::JigsawBlockInfo> $getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
377 MCAPI ::std::vector<::JigsawBlockInfo>
380 MCAPI ::BoundingBox $getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
382 MCFOLD
void $setProjection(::Projection projection);
384 MCAPI ::Projection $getProjection()
const;
386 MCAPI ::PostProcessSettings $getPostProcessSettings()
const;
394 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
405 ::br::worldgen::JigsawReplacement jigsaw
413 MCAPI
void $handleJigsawBlock(
419 MCAPI
void $handleDataMarker(
422 ::std::string markerData,
423 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
426 MCAPI
bool $isValid()
const;
428 MCFOLD ::StructurePoolElementType $type()
const;