private static IStorageCapsule[] GetStorageCapsuleInstances() { List <IStorageCapsule> storageCapsules = new List <IStorageCapsule>(); Type[] storageCapsuleTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).Where(x => x.GetInterfaces().Contains(typeof(IStorageCapsule))).ToArray(); for (int i = 0; i < storageCapsuleTypes.Length; i++) { IStorageCapsule instance = Activator.CreateInstance(storageCapsuleTypes[i]) as IStorageCapsule; if (instance != null) { storageCapsules.Add(instance); } } return(storageCapsules.ToArray()); }
private static CapsuleItem[] LoadCapsuleItems(string storagePath, Storage.EncodingType encodingType, IStorageCapsule[] storageCapsules) { List <CapsuleItem> loadedItems = new List <CapsuleItem>(); Storage storage = new Storage(storagePath, encodingType, storageCapsules); List <ReadStorageResult> results = storage.Read(storageCapsules.Select(x => x.ID).ToArray()); for (int i = 0; i < results.Count; i++) { ReadStorageResult result = results[i]; IStorageCapsule storageCapsuleInstance = storageCapsules.FirstOrDefault(x => x.ID == result.CapsuleID); if (storageCapsuleInstance != null) { Dictionary <string, StorageKeyEntry> keyEntries = new Dictionary <string, StorageKeyEntry>(); if (storageCapsuleInstance != null) { keyEntries = GetKeyEntries(storageCapsuleInstance.GetType()); } loadedItems.Add(new CapsuleItem(result.CapsuleID, result.CapsuleStorage, keyEntries)); } } return(loadedItems.ToArray()); }
public static string GetPathToStorageCapsule(string locationPath, IStorageCapsule capsule, bool addFileType) { return(Path.Combine(Application.persistentDataPath, string.Concat(locationPath, capsule.ID + (addFileType ? "." + SAVE_FILE_EXTENSION : "")))); }