update: 更新CFG条目判定逻辑

feature/item_system
胡宇飞 2023-12-28 12:26:30 +08:00
parent 5d73a79378
commit 69ec805265
1 changed files with 70 additions and 28 deletions

View File

@ -84,7 +84,15 @@ namespace Guru.Editor
#region Service Checker #region Service Checker
enum CheckStatus
{
Passed,
Warning,
Failed,
}
private const string MARK_FAIL = "#FAIL"; private const string MARK_FAIL = "#FAIL";
private const string MARK_WARN = "#WARN";
private const string MARK_INDENT = " "; private const string MARK_INDENT = " ";
private List<string> _completionCheckResult; private List<string> _completionCheckResult;
private int _serviceCriticalFail = 0; private int _serviceCriticalFail = 0;
@ -101,19 +109,25 @@ namespace Guru.Editor
_completionCheckResult = new List<string>(40); _completionCheckResult = new List<string>(40);
string mk_yes = " ( \u2714 ) "; string mk_yes = " ( \u2714 ) ";
string mk_no = " ( \u2718 ) "; string mk_no = " ( \u2718 ) ";
string mk_warn = " ( \u2639 ) "; string mk_warn = " ( ! ) ";
string mk_star = " ( \u2605 ) "; string mk_star = " ( \u2605 ) ";
string check_passed = $"{MARK_INDENT}{mk_yes} All items passed!"; string check_passed = $"{MARK_INDENT}{mk_yes} All items passed!";
if (_servicesConfig == null) if (_servicesConfig == null)
{ {
AddResultLine($"{mk_yes} guru-services is missing", false); AddResultLine($"{mk_yes} guru-services is missing", CheckStatus.Failed);
AddResultLine($"Please contact Guru tech support to get help.", false); AddResultLine($"Please contact Guru tech support to get help.", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
else else
{ {
bool passed = true; bool passed = true;
AddResultLine($"{mk_star} <guru-services> exists!"); AddResultLine($"{mk_star} <guru-services> exists!");
if (_servicesConfig.app_settings != null
&& !string.IsNullOrEmpty(_servicesConfig.app_settings.bundle_id))
{
AddResultLine($"{MARK_INDENT} + {MARK_INDENT}{_servicesConfig.app_settings.bundle_id}");
}
AddResultLine($"--------------------------------"); AddResultLine($"--------------------------------");
//-------- APP Settings -------- //-------- APP Settings --------
@ -122,7 +136,7 @@ namespace Guru.Editor
if (_servicesConfig.app_settings == null) if (_servicesConfig.app_settings == null)
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
else else
@ -130,25 +144,25 @@ namespace Guru.Editor
if (_servicesConfig.app_settings.app_id.IsNullOrEmpty()) if (_servicesConfig.app_settings.app_id.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} AppID is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} AppID is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (_servicesConfig.app_settings.bundle_id.IsNullOrEmpty()) if (_servicesConfig.app_settings.bundle_id.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} BundleID is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} BundleID is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (_servicesConfig.app_settings.product_name.IsNullOrEmpty()) if (_servicesConfig.app_settings.product_name.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} Product Name is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} Product Name is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (_servicesConfig.app_settings.support_email.IsNullOrEmpty()) if (_servicesConfig.app_settings.support_email.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} Support Email is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} Support Email is missing!", CheckStatus.Failed);
_serviceNormalFail++; _serviceNormalFail++;
} }
} }
@ -161,7 +175,7 @@ namespace Guru.Editor
if (_servicesConfig.ad_settings == null) if (_servicesConfig.ad_settings == null)
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
else else
@ -169,61 +183,61 @@ namespace Guru.Editor
if (_servicesConfig.ad_settings.sdk_key.IsNullOrEmpty()) if (_servicesConfig.ad_settings.sdk_key.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} SDK Key is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} SDK Key is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.admob_app_id)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.admob_app_id))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} Admob ID is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} Admob ID is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_android)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_android))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} AppLovin Android IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} AppLovin Android IDs is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_ios)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_ios))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_no} AppLovin iOS IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_no} AppLovin iOS IDs is missing!", CheckStatus.Failed);
_serviceCriticalFail++; _serviceCriticalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_android)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_android))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Amazon Android IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Amazon Android IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_ios)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_ios))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Amazon iOS IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Amazon iOS IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_android)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_android))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic Android IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic Android IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_ios)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_ios))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic iOS IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic iOS IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_android)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_android))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Moloco Android Test IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Moloco Android Test IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_ios)) if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_ios))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Moloco iOS Test IDs is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Moloco iOS Test IDs is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
} }
@ -235,7 +249,7 @@ namespace Guru.Editor
if (_servicesConfig.fb_settings == null) if (_servicesConfig.fb_settings == null)
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Facebook settings is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Facebook settings is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
else else
@ -243,13 +257,13 @@ namespace Guru.Editor
if (_servicesConfig.fb_settings.app_id.IsNullOrEmpty()) if (_servicesConfig.fb_settings.app_id.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Facebook AppID is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Facebook AppID is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (_servicesConfig.fb_settings.client_token.IsNullOrEmpty()) if (_servicesConfig.fb_settings.client_token.IsNullOrEmpty())
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Facebook Client Token is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Facebook Client Token is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
} }
@ -257,7 +271,7 @@ namespace Guru.Editor
if (_servicesConfig.adjust_settings == null) if (_servicesConfig.adjust_settings == null)
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Adjust settings is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Adjust settings is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
else else
@ -265,14 +279,14 @@ namespace Guru.Editor
if(!IsArrayNotEmpty(_servicesConfig.adjust_settings.app_token)) if(!IsArrayNotEmpty(_servicesConfig.adjust_settings.app_token))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Adjust AppToken is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Adjust AppToken is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (!IsArrayNotEmpty(_servicesConfig.adjust_settings.events)) if (!IsArrayNotEmpty(_servicesConfig.adjust_settings.events))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Adjust Events is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Adjust Events is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
} }
@ -284,7 +298,7 @@ namespace Guru.Editor
if (!IsArrayNotEmpty(_servicesConfig.products)) if (!IsArrayNotEmpty(_servicesConfig.products))
{ {
passed = false; passed = false;
AddResultLine($"{MARK_INDENT}{mk_warn} Product list is missing!", false); AddResultLine($"{MARK_INDENT}{mk_warn} Product list is missing!", CheckStatus.Warning);
_serviceNormalFail++; _serviceNormalFail++;
} }
if (passed) AddResultLine(check_passed); if (passed) AddResultLine(check_passed);
@ -292,13 +306,26 @@ namespace Guru.Editor
} }
private void AddResultLine(string msg, bool passed = true) private void AddResultLine(string msg, CheckStatus status = CheckStatus.Passed)
{ {
if (_completionCheckResult == null) if (_completionCheckResult == null)
{ {
_completionCheckResult = new List<string>(40); _completionCheckResult = new List<string>(40);
} }
string mk = passed? "" : MARK_FAIL;
string mk = "";
switch (status)
{
case CheckStatus.Passed:
mk = "";
break;
case CheckStatus.Warning:
mk = MARK_WARN;
break;
case CheckStatus.Failed:
mk = MARK_FAIL;
break;
}
_completionCheckResult.Add($"{msg}{mk}"); _completionCheckResult.Add($"{msg}{mk}");
} }
@ -308,6 +335,7 @@ namespace Guru.Editor
{ {
Color green = new Color(0.7f, 1, 0); Color green = new Color(0.7f, 1, 0);
Color red = new Color(1, 0.2f, 0); Color red = new Color(1, 0.2f, 0);
Color yellow = new Color(1f, 0.8f, 0.2f);
Color c; Color c;
string line = ""; string line = "";
for (int i = 0; i < _completionCheckResult.Count; i++) for (int i = 0; i < _completionCheckResult.Count; i++)
@ -319,6 +347,11 @@ namespace Guru.Editor
line = line.Replace(MARK_FAIL, ""); line = line.Replace(MARK_FAIL, "");
c = red; c = red;
} }
else if (line.EndsWith(MARK_WARN))
{
line = line.Replace(MARK_WARN, "");
c = yellow;
}
GUI_Color(c, () => GUI_Color(c, () =>
{ {
EditorGUILayout.LabelField(line); EditorGUILayout.LabelField(line);
@ -464,6 +497,7 @@ namespace Guru.Editor
} }
else else
{ {
EnsureParentDirectory(GURU_SETTINGS_PATH);
settings = CreateInstance<GuruSettings>(); settings = CreateInstance<GuruSettings>();
AssetDatabase.CreateAsset(settings, GURU_SETTINGS_PATH); AssetDatabase.CreateAsset(settings, GURU_SETTINGS_PATH);
} }
@ -871,6 +905,14 @@ namespace Guru.Editor
return array.Length >= length; return array.Length >= length;
} }
private static void EnsureParentDirectory(string filePath)
{
var dir = Path.GetDirectoryName(filePath);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
}
#endregion #endregion