40 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mRepositoryMutex;
41 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::LegacyStructureTemplate>>>
42 mLegacyStructureRepository;
43 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::StructureTemplate>>>
45 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::StructureAnimationData>>> mStructurePlacementQueue;
46 ::ll::TypedStorage<4, 4, uint> mStructurePlacementSaveCounter;
47 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
48 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourcePackManager>
const> mPackManager;
52 ::std::unordered_map<uint64, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>>>
54 ::ll::TypedStorage<8, 80, ::std::mutex> mMetadataRegistryMutex;
55 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
65 virtual ~StructureManager() =
default;
67 virtual ::LegacyStructureTemplate& getOrCreateLegacy(::std::string
const& structureName) ;
69 virtual ::StructureTemplate& getOrCreate(::std::string
const& structureName) ;
71 virtual ::StructureTemplate* getStructure(::std::string
const& structureName)
const ;
75 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>
84 MCAPI ::StructureTemplate* _createAndLoadStructure(
85 ::std::string
const& structureName,
90 MCAPI ::std::string _createLevelStorageId(::std::string
const& dimensionPrefix, ::std::string
const& saveId);
92 MCAPI ::StructureTemplate&
93 cloneStructure(
::StructureTemplate const& structureTemplate, ::std::string
const& structureName);
95 MCAPI ::StructureDeleteResult deleteStructure(::std::string
const& structureName,
::LevelStorage& levelStorage);
97 MCAPI ::std::vector<::std::string> getPackStructureNames(
::mce::UUID const& packUUID);
99 MCAPI ::std::vector<::std::string> getStructureNames(
::LevelStorage& levelStorage,
bool includeUnremovable)
const;
102 MCAPI ::StructureTemplate* importStructure(::std::string
const& structureName,
::Core::Path const& filePath);
105 MCAPI
void importStructureFromTemplate(::std::string name,
::StructureTemplate const& temp);
113 MCAPI
void loadMetadataRegistries();
125 MCAPI ::QueueRequestResult tryPlaceStructureInWorld(
126 ::std::unique_ptr<::CommandArea> cmdArea,
133 ::std::unique_ptr<::StructureAnimationData> structureAnimationData
140 MCAPI
static bool _findResource(
143 ::std::string& resourceStream
153 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
154 getStructurePath(::std::string_view structureFullName);
156 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
157 getStructurePath(::std::string_view structureNamespace, ::std::string_view structureName);
169 MCAPI ::LegacyStructureTemplate& $getOrCreateLegacy(::std::string
const& structureName);
171 MCAPI ::StructureTemplate& $getOrCreate(::std::string
const& structureName);
173 MCAPI ::StructureTemplate* $getStructure(::std::string
const& structureName)
const;
177 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>