FixForDualTypings.cs 2.2 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. Debug.Log($"Missing file: {card.CardID}");
  33. CardData data = _cardData.Where(x => x.id == card.CardID).First();
  34. card.cardKind = DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary);
  35. EditorUtility.SetDirty(card);
  36. }
  37. Debug.Log($"COMPLETED");
  38. }
  39. IEnumerator GetJsonData()
  40. {
  41. string url = baseURL + "assets/cardlists/DigimonCards.json";
  42. UnityWebRequest jsonWebRequest = UnityWebRequest.Get(url);
  43. yield return jsonWebRequest.SendWebRequest();
  44. if (jsonWebRequest.result != UnityWebRequest.Result.Success)
  45. {
  46. Debug.Log(jsonWebRequest.error);
  47. }
  48. else
  49. {
  50. RootObject root = JsonUtility.FromJson<RootObject>("{\"cards\":" + jsonWebRequest.downloadHandler.text + "}");
  51. _cardData = root.cards;
  52. }
  53. yield return null;
  54. }
  55. }
  56. }