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 ;
90 ::std::vector<::JigsawStructureBlockInfo>& jigsawMarkers,
91 ::std::vector<::std::unique_ptr<::StructurePoolBlockTagRule>>
const* blockTagRules
100 MCNAPI ::BlockPos
$getSize(::Rotation rotation)
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;
211 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
212 ::std::string
const& location,
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
226 ::Bedrock::NotNullNonOwnerPtr<::IStructureTemplateManager> manager,
227 ::std::string
const& location,
228 ::Projection projection,
229 ::PostProcessSettings postProcessSettings
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 MCNAPI ::SharedTypes::v1_21_80::JigsawStructureMetadata
const&
_getMetadata()
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 MCNAPI ::BlockPos
$getSize(::Rotation rotation)
const;
315 MCNAPI ::std::vector<::JigsawBlockInfo>
332 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace,
343 ::br::worldgen::JigsawReplacement jigsaw,
344 ::br::worldgen::LiquidSettings liquidSettings
361 ::std::string markerData,
362 ::std::unordered_map<
::BlockPos, ::std::optional<::ActorDefinitionIdentifier>>& entitiesToPlace
367 MCNAPI ::StructurePoolElementType
$type()
const;
369 MCNAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>
$createMetadata()
const;