41class StructurePoolElement {
56 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const = 0;
58 virtual ::BlockPos getSize(::Rotation rotation)
const = 0;
60 virtual bool isLegacyStructure()
const = 0;
72 ::std::reference_wrapper<::StructureTemplate>,
73 ::std::reference_wrapper<::LegacyStructureTemplate>>>
75 ::ll::TypedStorage<8, 24, ::std::vector<::JigsawBlockInfo>> mJigsawMarkers;
81 virtual ::std::vector<::JigsawBlockInfo>
const& getJigsawMarkers()
const ;
83 virtual ::BlockPos getSize(::Rotation rotation)
const ;
85 virtual bool isLegacyStructure()
const ;
91 MCAPI static ::std::vector<::JigsawBlockInfo> _findJigsawBlocks(
92 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
93 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
100 MCFOLD ::std::vector<::JigsawBlockInfo>
const& $getJigsawMarkers()
const;
102 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
104 MCAPI
bool $isLegacyStructure()
const;
116 using StructureProcessorList =
117 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>;
119 using StructureProcessorPtr = ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>;
124 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>> mMetadata;
125 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataMutex;
126 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mTemplateOnceFlag;
127 ::ll::TypedStorage<8, 56, ::std::optional<::StructurePoolElement::LazyTemplate>> mTemplate;
128 ::ll::TypedStorage<8, 8, uint64> mMetadataKey;
129 ::ll::TypedStorage<8, 32, ::std::string> mLocation;
130 ::ll::TypedStorage<8, 32, ::JigsawStructureUtils::StructureElementId> mId;
131 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager>> mManager;
132 ::ll::TypedStorage<8, 32, ::StructurePoolElementSettings> mSettings;
136 ::gsl::not_null<::std::shared_ptr<
137 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>>
139 ::ll::TypedStorage<1, 1, bool> mValid;
144 StructurePoolElement();
149 virtual ::BlockPos getSize(::Rotation rotation)
const;
151 virtual ::std::vector<::JigsawBlockInfo> getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
153 virtual ::std::vector<::JigsawBlockInfo>
156 virtual ::BoundingBox getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
158 virtual void setProjection(::Projection projection);
160 virtual ::Projection getProjection()
const;
162 virtual ::PostProcessSettings getPostProcessSettings()
const;
170 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
181 ::br::worldgen::JigsawReplacement jigsaw,
182 ::br::worldgen::LiquidSettings liquidSettings
193 virtual void handleDataMarker(
196 ::std::string markerData,
197 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
200 virtual bool isValid()
const;
202 virtual ~StructurePoolElement();
204 virtual ::StructurePoolElementType type()
const;
206 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> createMetadata()
const;
212 MCAPI StructurePoolElement(
213 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
214 ::std::string
const& location,
218 MCAPI StructurePoolElement(
219 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
220 ::std::string
const& location,
221 ::gsl::not_null<::std::shared_ptr<
222 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
224 ::Projection projection
227 MCAPI StructurePoolElement(
228 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
229 ::std::string
const& location,
230 ::Projection projection,
231 ::PostProcessSettings postProcessSettings
234 MCAPI StructurePoolElement(
235 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
236 ::std::string
const& location,
237 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
238 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
239 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
240 ::Projection projection,
241 ::PostProcessSettings postProcessSettings
244 MCAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const& _getMetadata()
const;
246 MCAPI uint64 _getMetadataKey()
const;
253 single(::std::string_view location, ::std::string
id);
257 ::std::string_view location,
258 ::gsl::not_null<::std::shared_ptr<
259 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
268 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
269 ::std::string
const& location,
274 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
275 ::std::string
const& location,
276 ::gsl::not_null<::std::shared_ptr<
277 ::std::vector<::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor const>>>
const>>
279 ::Projection projection
283 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
284 ::std::string
const& location,
285 ::Projection projection,
286 ::PostProcessSettings postProcessSettings
290 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
291 ::std::string
const& location,
292 ::std::vector<::std::unique_ptr<::StructurePoolBlockRule>>
const* blockRules,
293 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules,
294 ::std::vector<::std::unique_ptr<::StructurePoolActorRule>>
const* actorRules,
295 ::Projection projection,
296 ::PostProcessSettings postProcessSettings
309 MCAPI ::BlockPos $getSize(::Rotation rotation)
const;
311 MCAPI ::std::vector<::JigsawBlockInfo> $getJigsawMarkers(
::BlockPos position, ::Rotation rotation)
const;
313 MCAPI ::std::vector<::JigsawBlockInfo>
316 MCAPI ::BoundingBox $getBoundingBox(
::BlockPos position, ::Rotation rotation)
const;
318 MCAPI
void $setProjection(::Projection projection);
320 MCAPI ::Projection $getProjection()
const;
322 MCAPI ::PostProcessSettings $getPostProcessSettings()
const;
330 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
341 ::br::worldgen::JigsawReplacement jigsaw,
342 ::br::worldgen::LiquidSettings liquidSettings
350 MCAPI
void $handleJigsawBlock(
356 MCAPI
void $handleDataMarker(
359 ::std::string markerData,
360 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
363 MCAPI
bool $isValid()
const;
365 MCFOLD ::StructurePoolElementType $type()
const;
367 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata> $createMetadata()
const;