diff --git a/Editor/GuruJsonBuilder.meta b/Editor/GuruJsonBuilder.meta new file mode 100644 index 0000000..2dcbefa --- /dev/null +++ b/Editor/GuruJsonBuilder.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f9c48f29655a4b8bb90520de5a7c2fa4 +timeCreated: 1719552474 \ No newline at end of file diff --git a/Editor/GuruManager/Helper/GuruServiceJsonBuilder.cs b/Editor/GuruJsonBuilder/GuruServiceJsonBuilder.cs similarity index 88% rename from Editor/GuruManager/Helper/GuruServiceJsonBuilder.cs rename to Editor/GuruJsonBuilder/GuruServiceJsonBuilder.cs index ff65b84..aec3de3 100644 --- a/Editor/GuruManager/Helper/GuruServiceJsonBuilder.cs +++ b/Editor/GuruJsonBuilder/GuruServiceJsonBuilder.cs @@ -13,30 +13,8 @@ namespace Guru.Editor public class GuruServiceJsonBuilder: EditorWindow { - public enum GuruProjects - { - Default = 0, - BallSortPlus, - DOF, - D2, - DO, - TileConnect, - FindOut, - FindIt, - AP, - TileBurst, - Parking3D, - BallSort, - BallSort2, - WaterSort, - WaterSort2, - Arrow, - APFindDifference, - CookingBlitz, - WoodNuts, - MahjongSolitaire, - GoodsSort, - } + const string GuruProjectSettingsName = "guru-project-settings.cfg"; + // Tool Version public const string Version = "0.2.0"; @@ -57,35 +35,20 @@ namespace Guru.Editor private static GuruServiceJsonBuilder _instance; private List _projectNames; private int _selectedProjectIndex = 0; + private static Dictionary _publishLinks; + public static Dictionary PublishLinks + { + get + { + if (_publishLinks == null) _publishLinks = LoadProjectSettingsCfg(); + return _publishLinks; + } + } - #region Link & Keys private const string TSVLink = "https://docs.google.com/spreadsheets/d/e/{0}/pub?gid=0&single=true&output=tsv"; - private static readonly Dictionary PublishLinks = new Dictionary() - { - [GuruProjects.BallSortPlus.ToString()] = "2PACX-1vTa324nQIwNmXNtHC5sZZXYBdpUryKXdb8rFbTAwBa4KVlQ5ZXnErx2IvifkRxD8qKcNupfO1Kv5pJw", - [GuruProjects.DOF.ToString()] = "2PACX-1vSDpYZEUrCioCBRSkoZLra5nWk53Ks1f180TD1g2dnKcm-MZtAYvFSXDieAF4xromZCmxIoZuIfGyCJ", - [GuruProjects.D2.ToString()] = "2PACX-1vS1V35WTTPx2Jdeu6sVjPbaqFpjVwFu1Rn9tZkvxm8aEHbuRWibxt2pxPkLdDzwmCmrGBtU-PilABJm", - [GuruProjects.DO.ToString()] = "2PACX-1vT981NxQldx3qXELplYPoyFSfrMC3QvGciUwRu1sJmsHOu7dB3WSOPDGF4R55cXTq-Q5k_Dq4pmNpF2", - [GuruProjects.TileConnect.ToString()] = "2PACX-1vRfSd9UbrLilele8Fw1BafFjlvHG5EMnODfbppPiUaacr7wZ62IvgM65SYSjGEXJmU9g9AczollaFCf", - [GuruProjects.FindOut.ToString()] = "2PACX-1vQA3R66yWRHmUn6sneeIUU1qXEiaXv6h9QdzYzVRTEOg-yZf7WCJ6tuvXMWzwcOgGihiSnr9shMX__d", - [GuruProjects.FindIt.ToString()] = "2PACX-1vQs75JLsmTv1PESzOP6ANRqVk4zA3Y7PD5OV0yQbA5MM3wmp-hu4qE9gztZy7ETCP2nHJgDziwVpcFE", - [GuruProjects.AP.ToString()] = "2PACX-1vSvXTqbTcNCuHZYbKGA-fPKQj8XuixYUB9UXWqTQXz5QLXNurCtmBlziMbUxte_eqsGO0tB2GXe-sEC", - [GuruProjects.TileBurst.ToString()] = "2PACX-1vS5wvSZ5eSlK8TmYwVvgScJstaqN8cAB7Uxlq_nsbQwQ4VeD1BkhQuDbRdcO9ncuOCtoKjzSnviHVmc", - [GuruProjects.Parking3D.ToString()] = "2PACX-1vQY18hIrYjYNOqQNE12BcPtF4gtFMhBbfDrakBcIVQKoStmfPBY7C4O_Efj1Y8sNbytbKZr-0lPmBml", - [GuruProjects.BallSort.ToString()] = "2PACX-1vSPus7415l66-zScY1B1JOgLfSkm0yRPnRDG-BW0JgtnVZJziGDzvtBZr8D9oEZL2x478SdCS2yh0S_", - [GuruProjects.BallSort2.ToString()] = "2PACX-1vSZIZYbFuURK_ZMeMHV9ruL0SWBGMPA13er_J_DLRPVw5HBnU8_6c4mvek5UBFo1Ebbk63TMr-rsY6y", - [GuruProjects.WaterSort.ToString()] = "2PACX-1vTPxWbpP7KnT-e2xg9Uz-nukbLmqYc8SjwNL9MgycIhInNgmAjOmRnmyH6PWm3-hsEugKTJHKDcoKdI", - [GuruProjects.WaterSort2.ToString()] = "2PACX-1vQnZNtE7ZpT6eYagQDt686Be9Jr0tg22sRFg5cGiqFIsCVhWLu6jxDUg7qmyfIrX3iL5awat8FFnN7B", - [GuruProjects.Arrow.ToString()] = "2PACX-1vS5w8rNcJycK-VYgum7gkrLAx2Ln_7wykXLBX4EulI8XNGnlPsVlENQ8LupDdtiIu-JlngJaTw5dIzR", - [GuruProjects.APFindDifference.ToString()] = "2PACX-1vSmodKOvKjxmiNoYbrXFI6n1XC0aqvlnbYkEGyabLKqS6-C3Yi3nstmC89Hc31cdIzCk1FAl54beW2P", - [GuruProjects.CookingBlitz.ToString()] = "2PACX-1vShqtSSpwYQ8CvK-BVr-wQ5ygGeKKLdpaaWysSN_QumoDZYATemayAQIOdnFRzMP69nEwFYSx51oey8", - [GuruProjects.WoodNuts.ToString()] = "2PACX-1vQhtRg354eThBpWGCEk5f_2cLVbz1clQXv0n6w4Cyip0Knl6EQ4XwWMlcCec-legZdHU3E0-_cqKipc", - [GuruProjects.MahjongSolitaire.ToString()] = "2PACX-1vQpcaj8CpO__K1KGl-mg_940WOOIXBVzi0lmcjYTt1sqBI2PtK37s29McLTGU2I6N3fWM0ZepChedq7", - [GuruProjects.GoodsSort.ToString()] = "2PACX-1vQrg6Ss2bNYAI7A250t3_zp10UJtbbQXb8I4LtDJ2Q3uopUG_PUadoJy7T4w0jlf4xcTqot2NWsfp1m", - - }; + #endregion @@ -621,6 +584,53 @@ namespace Guru.Editor _instance.Show(); } + #endregion + + #region Settings + + private static string GetRelativeDir() + { + var guids = AssetDatabase.FindAssets(nameof(GuruServiceJsonBuilder)); + if (guids.Length > 0) + { + var path = AssetDatabase.GUIDToAssetPath(guids[0]); + var rpath = Directory.GetParent(path).FullName; + return rpath; + } + return Path.GetFullPath($"Assets/../Packages/Editor/GuruJsonBuilder"); + } + + private static Dictionary LoadProjectSettingsCfg() + { + var cfgPath = $"{GetRelativeDir()}/{GuruProjectSettingsName}"; + if (File.Exists(cfgPath)) + { + var lines = File.ReadAllLines(cfgPath); + int len = lines?.Length ?? -1; + if (len > 0) + { + Dictionary dict = new Dictionary(lines.Length); + int i = 0; + string[] raw; + string line, key, value; + while (i < len) + { + line = lines[i]; + if(string.IsNullOrEmpty(line)) continue; + raw = lines[i].Split(','); + key = ""; + value = ""; + key = raw[0]; + if(raw.Length > 0) value = raw[1]; + dict[key] = value; + i++; + } + return dict; + } + } + return null; + } + #endregion #region Window @@ -631,7 +641,7 @@ namespace Guru.Editor this.titleContent = new GUIContent("Json Builder"); _projectNames = new List(20); - string[] names = Enum.GetNames(typeof(GuruProjects)); + string[] names = PublishLinks.Keys.ToArray(); string name = ""; for(int i = 0; i < names.Length; i++) { @@ -648,7 +658,16 @@ namespace Guru.Editor _selectedProjectIndex = 0; _state = STATE_IDLE; + + + var json = LoadProjectSettingsCfg(); + Debug.Log(json); + } + + + + private void OnEnable() { @@ -759,11 +778,6 @@ namespace Guru.Editor #region Networking - private static string GetProjectTSVUrl(GuruProjects pid) - { - return GetProjectTSVUrl(pid.ToString()); - } - private static string GetProjectTSVUrl(string pid) { if (PublishLinks.TryGetValue(pid, out var id)) @@ -819,8 +833,7 @@ namespace Guru.Editor private static void Test_FetchConfigFile() { - var pid = GuruProjects.FindOut; - + var pid = "FindOut"; var url = GetProjectTSVUrl(pid); diff --git a/Editor/GuruManager/Helper/GuruServiceJsonBuilder.cs.meta b/Editor/GuruJsonBuilder/GuruServiceJsonBuilder.cs.meta similarity index 100% rename from Editor/GuruManager/Helper/GuruServiceJsonBuilder.cs.meta rename to Editor/GuruJsonBuilder/GuruServiceJsonBuilder.cs.meta diff --git a/Editor/GuruJsonBuilder/guru-project-settings.cfg.meta b/Editor/GuruJsonBuilder/guru-project-settings.cfg.meta new file mode 100644 index 0000000..e60e73a --- /dev/null +++ b/Editor/GuruJsonBuilder/guru-project-settings.cfg.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 88694fb6aaa64ea192e0bffb4cb5b744 +timeCreated: 1719552889 \ No newline at end of file