41 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mRepositoryMutex;
42 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::LegacyStructureTemplate>>>
43 mLegacyStructureRepository;
44 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::StructureTemplate>>>
46 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::StructureAnimationData>>> mStructurePlacementQueue;
47 ::ll::TypedStorage<4, 4, uint> mStructurePlacementSaveCounter;
48 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
49 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourcePackManager>
const> mPackManager;
53 ::std::unordered_map<uint64, ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>>>
55 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMetadataRegistryMutex;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
66 virtual ~StructureManager() =
default;
68 virtual ::LegacyStructureTemplate& getOrCreateLegacy(::std::string
const& structureName) ;
70 virtual ::StructureTemplate& getOrCreate(::std::string
const& structureName) ;
72 virtual ::StructureTemplate* getStructure(::std::string
const& structureName)
const ;
76 virtual ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>
85 MCAPI ::StructureTemplate* _createAndLoadStructure(
86 ::std::string
const& structureName,
91 MCAPI ::std::string _createLevelStorageId(::std::string
const& dimensionPrefix, ::std::string
const& saveId);
93 MCAPI ::StructureTemplate&
94 cloneStructure(
::StructureTemplate const& structureTemplate, ::std::string
const& structureName);
96 MCAPI ::StructureDeleteResult deleteStructure(::std::string
const& structureName,
::LevelStorage& levelStorage);
98 MCAPI ::std::vector<::std::string> getPackStructureNames(
::mce::UUID const& packUUID);
100 MCAPI ::std::vector<::std::string> getStructureNames(
::LevelStorage& levelStorage,
bool includeUnremovable)
const;
103 MCAPI ::StructureTemplate* importStructure(::std::string
const& structureName,
::Core::Path const& filePath);
106 MCAPI
void importStructureFromTemplate(::std::string name,
::StructureTemplate const& temp);
114 MCAPI
void loadMetadataRegistries();
126 MCAPI ::QueueRequestResult tryPlaceStructureInWorld(
127 ::std::unique_ptr<::CommandArea> cmdArea,
134 ::std::unique_ptr<::StructureAnimationData> structureAnimationData
141 MCAPI
static bool _findResource(
144 ::std::string& resourceStream
154 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
155 getStructurePath(::std::string_view structureFullName);
157 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
158 getStructurePath(::std::string_view structureNamespace, ::std::string_view structureName);
174 MCAPI ::LegacyStructureTemplate& $getOrCreateLegacy(::std::string
const& structureName);
176 MCAPI ::StructureTemplate& $getOrCreate(::std::string
const& structureName);
178 MCAPI ::StructureTemplate* $getStructure(::std::string
const& structureName)
const;
182 MCAPI ::std::shared_ptr<::SharedTypes::v1_21_80::JigsawStructureMetadata>