50 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mRepositoryMutex;
51 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::LegacyStructureTemplate>>>
52 mLegacyStructureRepository;
53 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::StructureTemplate>>>
55 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::StructureAnimationData>>> mStructurePlacementQueue;
56 ::ll::TypedStorage<4, 4, uint> mStructurePlacementSaveCounter;
57 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
58 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourcePackManager>
const> mPackManager;
62 ::std::unordered_map<uint64, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>>>
64 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataRegistryMutex;
65 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
75 virtual ~StructureManager() ;
77 virtual ::LegacyStructureTemplate& getOrCreateLegacy(::std::string
const& structureName) ;
79 virtual ::StructureTemplate& getOrCreate(::std::string
const& structureName) ;
81 virtual ::StructureTemplate* getStructure(::std::string
const& structureName)
const ;
85 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>
94 MCAPI ::StructureTemplate* _createAndLoadStructure(
95 ::std::string
const& structureName,
100 MCAPI ::std::string _createLevelStorageId(::std::string
const& dimensionPrefix, ::std::string
const& saveId);
102 MCAPI
bool _findResource(
105 ::std::string& resourceStream
108 MCAPI
bool _findResource(
109 ::std::string_view structureNamespace,
113 ::std::string& resourceStream
116 MCAPI ::LegacyStructureTemplate* _getLegacy(::std::string
const& structurePath);
120 MCAPI
bool _placeSegment(
125 ::std::function<::ChunksLoadedStatus(
::Tick)>
const& areChunksLoaded
128 MCAPI ::LegacyStructureTemplate* _readLegacyStructure(::std::string
const& name);
136 MCAPI
void clearAndShutdownStructurePlacement();
138 MCAPI ::StructureTemplate&
139 cloneStructure(
::StructureTemplate const& structureTemplate, ::std::string
const& structureName);
141 MCAPI ::StructureTemplateDataResponsePacket createStructureDataExportPacket(
142 ::std::string
const& structureName,
145 ::StructureTemplateResponseType responseType
148 MCAPI ::StructureDeleteResult deleteStructure(::std::string
const& structureName,
::LevelStorage& levelStorage);
150 MCAPI ::StructureTemplate* getOrLoadStructure(
151 ::std::string
const& structureName,
156 MCAPI ::std::vector<::std::string> getPackStructureNames(
::mce::UUID const& packUUID);
158 MCAPI ::std::vector<::std::string> getStructureNames(
::LevelStorage& levelStorage,
bool includeUnremovable)
const;
161 MCAPI ::StructureTemplate* importStructure(::std::string
const& structureName,
::Core::Path const& filePath);
164 MCAPI
void importStructureFromTemplate(::std::string name,
::StructureTemplate const& temp);
174 MCAPI
void loadMetadataRegistries();
189 MCAPI ::QueueRequestResult tryPlaceStructureInWorld(
190 ::std::unique_ptr<::CommandArea> cmdArea,
197 ::std::unique_ptr<::StructureAnimationData> structureAnimationData
204 MCAPI static ::std::unique_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadataRegistry>
207 MCAPI
static void _metadataPackForEachCallback(
213 ::std::string& fileData,
221 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
222 getStructurePath(::std::string_view structureFullName);
224 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
225 getStructurePath(::std::string_view structureNamespace, ::std::string_view structureName);
231 MCAPI
static char const*& BEHAVIOR_PACK_STRUCTURES_FOLDER();
233 MCAPI
static char const*& LEVEL_STORAGE_STRUCTURE_TEMPLATE_PREFIX();
251 MCAPI ::LegacyStructureTemplate& $getOrCreateLegacy(::std::string
const& structureName);
253 MCAPI ::StructureTemplate& $getOrCreate(::std::string
const& structureName);
255 MCAPI ::StructureTemplate* $getStructure(::std::string
const& structureName)
const;
259 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>