public void DoRecover() { string[] selectedDeletedItemGUIDs = this.GetSelectedDeletedItemGUIDs(); Dictionary <string, int> dictionary = new Dictionary <string, int>(); int num = 0; for (int i = 0; i < selectedDeletedItemGUIDs.Length; i++) { for (int j = 0; j < this.m_DeletedItems.Length; j++) { if (this.m_DeletedItems[j].guid == selectedDeletedItemGUIDs[i]) { dictionary[this.m_DeletedItems[j].guid] = j; break; } } } DeletedAsset[] assets = new DeletedAsset[dictionary.Count]; while (dictionary.Count != 0) { DeletedAsset asset = null; foreach (KeyValuePair <string, int> pair in dictionary) { asset = this.m_DeletedItems[pair.Value]; if (!dictionary.ContainsKey(asset.parent)) { assets[num++] = asset; break; } } dictionary.Remove(asset.guid); } AssetServer.SetAfterActionFinishedCallback("ASEditorBackend", "CBReinitASMainWindow"); AssetServer.DoRecoverOnNextTick(assets); }
public void DoRecover() { string[] deletedItemGuiDs = this.GetSelectedDeletedItemGUIDs(); Dictionary <string, int> dictionary = new Dictionary <string, int>(); int num = 0; for (int index1 = 0; index1 < deletedItemGuiDs.Length; ++index1) { for (int index2 = 0; index2 < this.m_DeletedItems.Length; ++index2) { if (this.m_DeletedItems[index2].guid == deletedItemGuiDs[index1]) { dictionary[this.m_DeletedItems[index2].guid] = index2; break; } } } DeletedAsset[] assets = new DeletedAsset[dictionary.Count]; while (dictionary.Count != 0) { DeletedAsset deletedAsset = (DeletedAsset)null; using (Dictionary <string, int> .Enumerator enumerator = dictionary.GetEnumerator()) { while (enumerator.MoveNext()) { deletedAsset = this.m_DeletedItems[enumerator.Current.Value]; if (!dictionary.ContainsKey(deletedAsset.parent)) { assets[num++] = deletedAsset; break; } } } dictionary.Remove(deletedAsset.guid); } AssetServer.SetAfterActionFinishedCallback("ASEditorBackend", "CBReinitASMainWindow"); AssetServer.DoRecoverOnNextTick(assets); }