FixForDualTypings.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using DCGO.CardEntities;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using Unity.EditorCoroutines.Editor;
  6. using UnityEditor;
  7. using UnityEngine;
  8. using UnityEngine.Networking;
  9. namespace DCGO.Tools.Repair
  10. {
  11. public class FixForDualTypings : MonoBehaviour
  12. {
  13. static FixForDualTypings instance;
  14. string baseURL = "https://raw.githubusercontent.com/TakaOtaku/Digimon-Card-App/main/src/";
  15. public List<CardData> _cardData;
  16. [MenuItem("Window/DCGO/Repair/Fix Card Kind Data")]
  17. static void FixCardKind()
  18. {
  19. instance = new FixForDualTypings();
  20. EditorCoroutineUtility.StartCoroutine(instance.FixCardKinds(), instance);
  21. Debug.Log("Fixed all CardKind in CardBaseEntity");
  22. return;
  23. }
  24. IEnumerator FixCardKinds()
  25. {
  26. yield return EditorCoroutineUtility.StartCoroutine(instance.GetJsonData(), instance);
  27. List<CEntity_Base> Entities = GetAsset.LoadAll<CEntity_Base>("Assets/CardBaseEntity/");
  28. foreach (CEntity_Base card in Entities)
  29. {
  30. if (card.cardKind.Count > 0)
  31. continue;
  32. CardData data = _cardData.Where(x => x.id == card.CardID).First();
  33. card.cardKind = DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary);
  34. EditorUtility.SetDirty(card);
  35. }
  36. Debug.Log($"COMPLETED");
  37. }
  38. IEnumerator GetJsonData()
  39. {
  40. string url = baseURL + "assets/cardlists/DigimonCards.json";
  41. UnityWebRequest jsonWebRequest = UnityWebRequest.Get(url);
  42. yield return jsonWebRequest.SendWebRequest();
  43. if (jsonWebRequest.result != UnityWebRequest.Result.Success)
  44. {
  45. Debug.Log(jsonWebRequest.error);
  46. }
  47. else
  48. {
  49. RootObject root = JsonUtility.FromJson<RootObject>("{\"cards\":" + jsonWebRequest.downloadHandler.text + "}");
  50. _cardData = root.cards;
  51. }
  52. yield return null;
  53. }
  54. }
  55. }