public StorageItem(string parentKey, IStorageDictionaryEditor storageDictionaryEditor, Dictionary <string, StorageKeyEntry> keyEntries) : base(parentKey, string.Concat("Storage: (", parentKey, ")"), false) { KeyEntries = keyEntries; if (storageDictionaryEditor != null) { string[] valKeys = storageDictionaryEditor.GetValueStorageKeys(); ValKeys = new ValKeyItem[valKeys.Length]; for (int i = 0; i < valKeys.Length; i++) { if (!keyEntries.TryGetValue(valKeys[i], out StorageKeyEntry valueEntry)) { valueEntry = new StorageKeyEntry() { StorageKey = valKeys[i], }; } ValKeys[i] = new ValKeyItem(valueEntry, storageDictionaryEditor.GetValueSection(valKeys[i])); } string[] refKeys = storageDictionaryEditor.GetRefStorageKeys(); RefsKeys = new RefsKeyItem[refKeys.Length]; for (int i = 0; i < refKeys.Length; i++) { if (!keyEntries.TryGetValue(refKeys[i], out StorageKeyEntry refEntry)) { refEntry = new StorageKeyEntry() { StorageKey = refKeys[i], }; } RefsKeys[i] = new RefsKeyItem(refEntry, storageDictionaryEditor.GetValueRefs(refKeys[i])); } } else { ValKeys = new ValKeyItem[] { }; RefsKeys = new RefsKeyItem[] { }; } }