FindInconsistentTrait.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 FindInconsistentTrait : 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. bool edited = false;
  42. for(int i = 0; i < card.Type_ENG.Count; i++)
  43. {
  44. if (!card.Type_ENG[i].Contains(value.stringToFind))
  45. continue;
  46. if (card.Type_ENG[i].Equals(value.stringToCompare))
  47. continue;
  48. card.Type_ENG[i] = value.stringToCompare;
  49. _entities.Add(card);
  50. edited = true;
  51. }
  52. if(edited)
  53. EditorUtility.SetDirty(card);
  54. }
  55. Debug.Log($"Inconsistency Complete: Found {_entities.Count}");
  56. yield return null;
  57. }
  58. }
  59. }