Ejemplo n.º 1
0
 public void LoadStorage(string path, Storage.EncodingType encodingType)
 {
     _capsuleUIItems.Clear();
     IStorageCapsule[] storageCapsuleInstances = GetStorageCapsuleInstances();
     _currentlyViewingStorage = new Storage(path, encodingType, storageCapsuleInstances);
     _capsuleUIItems.AddRange(LoadCapsuleItems(path, encodingType, storageCapsuleInstances));
 }
Ejemplo n.º 2
0
        public static CorruptionState ValidateStorage(string storagePath, Storage.EncodingType encodingType, CorruptionState openOnState = CorruptionState.Warning | CorruptionState.Error)
        {
            CorruptionState worstCorruptionState = CorruptionState.None;

            IStorageCapsule[] capsuleInstances = GetStorageCapsuleInstances();
            CapsuleItem[]     capsuleItems     = LoadCapsuleItems(storagePath, encodingType, capsuleInstances);
            for (int i = 0; i < capsuleItems.Length; i++)
            {
                CapsuleItem capsuleItem = capsuleItems[i];

                if (capsuleItem.StorageItem.IsEmpty)
                {
                    continue;
                }

                if (worstCorruptionState < capsuleItem.CorruptionState)
                {
                    worstCorruptionState = capsuleItem.CorruptionState;
                }

                if (openOnState.HasFlag(worstCorruptionState))
                {
                    OpenWindow().LoadStorage(storagePath, encodingType);
                }
            }

            return(worstCorruptionState);
        }
Ejemplo n.º 3
0
        protected void OnGUI()
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Save Files Directory Path:");
            _pathInputValue = EditorGUILayout.TextField(_pathInputValue);
            if (GUILayout.Button("Try Open Location"))
            {
                string path = Storage.GetPathToStorage(_pathInputValue);
                if (System.IO.Directory.Exists(path))
                {
                    EditorUtility.RevealInFinder(path);
                }
                else
                {
                    Debug.LogWarning($"Path {path} does not exist!");
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.LabelField("Encoding Type:");
            _encodingTypeInputValue = (Storage.EncodingType)EditorGUILayout.EnumPopup(_encodingTypeInputValue);

            if (GUILayout.Button("Load Storage"))
            {
                LoadStorage(_pathInputValue, _encodingTypeInputValue);
            }

            if (_currentlyViewingStorage != null)
            {
                if (GUILayout.Button("Refresh"))
                {
                    LoadStorage(_currentlyViewingStorage.StorageLocationPath, _currentlyViewingStorage.EncodingOption);
                }
            }

            if (_capsuleUIItems != null)
            {
                _scroll = EditorGUILayout.BeginScrollView(_scroll);
                for (int i = 0; i < _capsuleUIItems.Count; i++)
                {
                    _capsuleUIItems[i].RenderGUI(0);
                }
                EditorGUILayout.EndScrollView();
            }
        }
Ejemplo n.º 4
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());
        }