Beispiel #1
0
        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());
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
 public static string GetPathToStorageCapsule(string locationPath, IStorageCapsule capsule, bool addFileType)
 {
     return(Path.Combine(Application.persistentDataPath, string.Concat(locationPath, capsule.ID + (addFileType ? "." + SAVE_FILE_EXTENSION : ""))));
 }