49 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mRepositoryMutex;
50 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::LegacyStructureTemplate>>>
51 mLegacyStructureRepository;
52 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::StructureTemplate>>>
54 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::StructureAnimationData>>> mStructurePlacementQueue;
55 ::ll::TypedStorage<4, 4, uint> mStructurePlacementSaveCounter;
56 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
57 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourcePackManager>
const> mPackManager;
61 ::std::unordered_map<uint64, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>>>
63 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataRegistryMutex;
64 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
74 virtual ~StructureManager() ;
76 virtual ::LegacyStructureTemplate& getOrCreateLegacy(::std::string
const& structureName) ;
78 virtual ::StructureTemplate& getOrCreate(::std::string
const& structureName) ;
80 virtual ::StructureTemplate* getStructure(::std::string
const& structureName)
const ;
84 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>
93 MCAPI ::std::string _createLevelStorageId(::std::string
const& dimensionPrefix, ::std::string
const& saveId);
95 MCAPI
bool _findResource(
98 ::std::string& resourceStream
101 MCAPI
bool _findResource(
102 ::std::string_view structureNamespace,
106 ::std::string& resourceStream
111 MCAPI
bool _placeSegment(
116 ::std::function<::ChunksLoadedStatus(
::Tick)>
const& areChunksLoaded
119 MCAPI ::LegacyStructureTemplate* _readLegacyStructure(::std::string
const& name);
127 MCAPI ::StructureTemplate&
128 cloneStructure(
::StructureTemplate const& structureTemplate, ::std::string
const& structureName);
130 MCAPI ::StructureTemplateDataResponsePacket createStructureDataExportPacket(
131 ::std::string
const& structureName,
134 ::StructureTemplateResponseType responseType
137 MCAPI ::StructureDeleteResult deleteStructure(::std::string
const& structureName,
::LevelStorage& levelStorage);
139 MCAPI ::std::vector<::std::string> getStructureNames(
::LevelStorage& levelStorage,
bool includeUnremovable)
const;
141 MCAPI_C ::StructureTemplate* importStructure(::std::string
const& structureName,
::Core::Path const& filePath);
143 MCAPI
void importStructureFromTemplate(::std::string name,
::StructureTemplate const& temp);
153 MCAPI
void loadMetadataRegistries();
160 MCAPI
void queueLoad(::std::unique_ptr<::StructureAnimationData> structureAnimationData);
170 MCAPI ::QueueRequestResult tryPlaceStructureInWorld(
171 ::std::unique_ptr<::CommandArea> cmdArea,
178 ::std::unique_ptr<::StructureAnimationData> structureAnimationData
185 MCAPI static ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry>
188 MCAPI
static void _metadataPackForEachCallback(
192 ::std::string& fileData,
196 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
197 getStructurePath(::std::string_view structureNamespace, ::std::string_view structureName);
203 MCAPI
static char const*& BEHAVIOR_PACK_STRUCTURES_FOLDER();
205 MCAPI
static char const*& LEVEL_STORAGE_STRUCTURE_TEMPLATE_PREFIX();
223 MCAPI ::LegacyStructureTemplate& $getOrCreateLegacy(::std::string
const& structureName);
225 MCAPI ::StructureTemplate& $getOrCreate(::std::string
const& structureName);
227 MCAPI ::StructureTemplate* $getStructure(::std::string
const& structureName)
const;
231 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>