FindInconsistentName.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEditor.SceneManagement;
  5. using UnityEditor;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. using DCGO.CardEntities;
  9. using Unity.EditorCoroutines.Editor;
  10. using System.Collections;
  11. using UnityEngine.Networking;
  12. using WebSocketSharp;
  13. using static UnityEngine.ParticleSystem;
  14. namespace DCGO.Tools.Repair{
  15. [CreateAssetMenu(fileName = "CardEntity_Inconsistency", menuName = "Create Inconsistency Entity")]
  16. public class InconsistentName : ScriptableObject
  17. {
  18. public string stringToFind;
  19. public string stringToCompare;
  20. }
  21. [CustomEditor(typeof(InconsistentName))]
  22. public class FindInconsistentName : Editor
  23. {
  24. InconsistentName _stringValue;
  25. List<CEntity_Base> _entities;
  26. public override void OnInspectorGUI()
  27. {
  28. _stringValue = target as InconsistentName;
  29. DrawDefaultInspector();
  30. if (GUILayout.Button("Find Inconsistencies"))
  31. EditorCoroutineUtility.StartCoroutine(FindInconsistency(_stringValue), this);
  32. if (_entities == null)
  33. return;
  34. }
  35. IEnumerator FindInconsistency(InconsistentName value)
  36. {
  37. List<CEntity_Base> List = GetAsset.LoadAll<CEntity_Base>("Assets/CardBaseEntity/");
  38. _entities = new List<CEntity_Base>();
  39. foreach (CEntity_Base card in List)
  40. {
  41. List<string> traits = new List<string>();
  42. traits.AddRange(card.Attribute_ENG);
  43. traits.AddRange(card.Type_ENG);
  44. foreach (string trait in card.Attribute_ENG)
  45. {
  46. if (!trait.Contains(value.stringToFind))
  47. continue;
  48. if (!trait.Equals(value.stringToCompare))
  49. card.Attribute_ENG[card.Attribute_ENG.FindIndex(str => str == trait)] = value.stringToCompare;
  50. }
  51. EditorUtility.SetDirty(card);
  52. }
  53. yield return null;
  54. }
  55. }
  56. }