update: add json builder
# Conflicts: # Editor/GuruManager/Helper/GuruServiceJsonBuilder.csdev
parent
331a845f02
commit
31991a780b
|
|
@ -1,4 +1,5 @@
|
|||
#if GURU_SDK_DEV
|
||||
|
||||
|
||||
|
||||
namespace Guru.Editor
|
||||
{
|
||||
|
|
@ -12,8 +13,30 @@ namespace Guru.Editor
|
|||
|
||||
public class GuruServiceJsonBuilder: EditorWindow
|
||||
{
|
||||
const string GuruProjectSettingsName = "guru-project-settings.cfg";
|
||||
|
||||
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,
|
||||
}
|
||||
|
||||
// Tool Version
|
||||
public const string Version = "0.2.0";
|
||||
|
|
@ -34,20 +57,35 @@ namespace Guru.Editor
|
|||
private static GuruServiceJsonBuilder _instance;
|
||||
private List<string> _projectNames;
|
||||
private int _selectedProjectIndex = 0;
|
||||
private static Dictionary<string, string> _publishLinks;
|
||||
public static Dictionary<string, string> 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<string, string> PublishLinks = new Dictionary<string, string>()
|
||||
{
|
||||
[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
|
||||
|
||||
|
|
@ -68,7 +106,7 @@ namespace Guru.Editor
|
|||
|
||||
var guru_service = EditorGuruServiceIO.CreateEmpty();
|
||||
|
||||
var lines = tsv.Split('\n');
|
||||
var lines = tsv.Split("\n");
|
||||
string line = "";
|
||||
for (int index = 0; index < lines.Length; index++)
|
||||
{
|
||||
|
|
@ -479,7 +517,7 @@ namespace Guru.Editor
|
|||
arr = GetStringArray(line, 0, 7);
|
||||
if(string.IsNullOrEmpty(arr[5])) arr[5] = "Store";
|
||||
if(string.IsNullOrEmpty(arr[6])) arr[6] = "0";
|
||||
iaps.Add(string.Join(",", arr).Replace("\r", ""));
|
||||
iaps.Add(string.Join("," , arr));
|
||||
index++;
|
||||
}
|
||||
settings.products = iaps.ToArray();
|
||||
|
|
@ -585,53 +623,6 @@ namespace Guru.Editor
|
|||
|
||||
#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<string, string> LoadProjectSettingsCfg()
|
||||
{
|
||||
var cfgPath = $"{GetRelativeDir()}/{GuruProjectSettingsName}";
|
||||
if (File.Exists(cfgPath))
|
||||
{
|
||||
var lines = File.ReadAllLines(cfgPath);
|
||||
int len = lines?.Length ?? -1;
|
||||
if (len > 0)
|
||||
{
|
||||
Dictionary<string, string> dict = new Dictionary<string, string>(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(',');
|
||||
value = "";
|
||||
key = raw[0];
|
||||
if(string.IsNullOrEmpty(key)) continue;
|
||||
if(raw.Length > 1) value = raw[1];
|
||||
dict[key] = value;
|
||||
i++;
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Window
|
||||
|
||||
private void Awake()
|
||||
|
|
@ -640,7 +631,7 @@ namespace Guru.Editor
|
|||
this.titleContent = new GUIContent("Json Builder");
|
||||
|
||||
_projectNames = new List<string>(20);
|
||||
string[] names = PublishLinks.Keys.ToArray();
|
||||
string[] names = Enum.GetNames(typeof(GuruProjects));
|
||||
string name = "";
|
||||
for(int i = 0; i < names.Length; i++)
|
||||
{
|
||||
|
|
@ -657,17 +648,8 @@ namespace Guru.Editor
|
|||
|
||||
_selectedProjectIndex = 0;
|
||||
_state = STATE_IDLE;
|
||||
|
||||
|
||||
var json = LoadProjectSettingsCfg();
|
||||
Debug.Log(json);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
// Debug.Log($"------- OnEnable -------");
|
||||
|
|
@ -777,6 +759,11 @@ 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))
|
||||
|
|
@ -822,6 +809,8 @@ namespace Guru.Editor
|
|||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region TEST
|
||||
|
||||
#if GURU_SDK_DEV
|
||||
|
|
@ -830,7 +819,8 @@ namespace Guru.Editor
|
|||
private static void Test_FetchConfigFile()
|
||||
{
|
||||
|
||||
var pid = "FindOut";
|
||||
var pid = GuruProjects.FindOut;
|
||||
|
||||
var url = GetProjectTSVUrl(pid);
|
||||
|
||||
|
||||
|
|
@ -857,7 +847,6 @@ namespace Guru.Editor
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue