public T ImportRessource <T>(string ressourceID) where T : IRessource { if (!ManagedRessources.ContainsKey(ressourceID)) { Debugger.WriteLog($"Importing : '{ressourceID}'...", LogType.Info, nameof(RessourceManager)); string ressourceTypeName = ressourceID.Split(':')[0]; IRessourceImporter importer = Importers[ressourceTypeName]; IRessource ressource = importer.Import(this, $"{RessourceFolderName}/{ressourceTypeName}/{ressourceID.Split(':')[1]}"); if (ressource != null) { ManagedRessources[ressourceID] = ressource; } else { throw new Exception($"Cannot import '{ressourceID}' with '{Importers}'. The importer return a 'null'!"); } } return((T)ManagedRessources[ressourceID]); }
public void AddImporter(IRessourceImporter importer) { Importers.Add(importer.RessourceTypeName, importer); Directory.CreateDirectory($"{RessourceFolderName}/{importer.RessourceTypeName}"); }