// Updates the list of all scripts that should be checked. void UpdateYarnScriptList() { // Clear the list of files checkResults.Clear(); // Clear the list of diagnoses diagnoses = new List <Yarn.Analysis.Diagnosis>(); // Find all TextAssets var list = AssetDatabase.FindAssets("t:textasset"); foreach (var guid in list) { // Filter the list to only include .json files var path = AssetDatabase.GUIDToAssetPath(guid); if (path.EndsWith(".json")) { var asset = AssetDatabase.LoadAssetAtPath <TextAsset>(path); var newResult = new CheckerResult(asset); checkResults.Add(newResult); } } }
public static ServiceStatus AsServiceStatus(this CheckerResult checkerResult) { return(checkerResult switch { CheckerResult.OK => ServiceStatus.OK, CheckerResult.MUMBLE => ServiceStatus.MUMBLE, CheckerResult.OFFLINE => ServiceStatus.OFFLINE, _ => ServiceStatus.INTERNAL_ERROR, });
static void DrawScriptGUI(CheckerResult result) { EditorGUILayout.BeginHorizontal(); // What icon should we use for this script? Texture image; switch (result.state) { case CheckerResult.State.NotTested: image = null; break; case CheckerResult.State.Ignored: image = Icons.ignoredIcon; break; case CheckerResult.State.Passed: image = Icons.successIcon; break; case CheckerResult.State.Failed: image = Icons.failedIcon; break; default: throw new System.ArgumentOutOfRangeException(); } // Draw the image and the label name EditorGUILayout.LabelField(new GUIContent(image), GUILayout.Width(20)); EditorGUILayout.LabelField(result.script.name); EditorGUILayout.EndHorizontal(); // Draw any messages resulting from this script if (result.messages.Length > 0) { EditorGUI.indentLevel += 2; foreach (var message in result.messages) { EditorGUILayout.HelpBox(message.message, message.type); } EditorGUI.indentLevel -= 2; } }
static void DrawScriptGUI(CheckerResult result) { EditorGUILayout.BeginHorizontal (); // What icon should we use for this script? Texture image; switch (result.state) { case CheckerResult.State.NotTested: image = null; break; case CheckerResult.State.Ignored: image = Icons.ignoredIcon; break; case CheckerResult.State.Passed: image = Icons.successIcon; break; case CheckerResult.State.Failed: image = Icons.failedIcon; break; default: throw new System.ArgumentOutOfRangeException (); } // Draw the image and the label name EditorGUILayout.LabelField (new GUIContent (image), GUILayout.Width (20)); EditorGUILayout.LabelField (result.script.name); EditorGUILayout.EndHorizontal (); // Draw any messages resulting from this script if (result.messages.Length > 0) { EditorGUI.indentLevel += 2; foreach (var message in result.messages) { EditorGUILayout.HelpBox(message.message, message.type); } EditorGUI.indentLevel -= 2; } }
void UpdateJSONList() { // Find all TextAssets var list = AssetDatabase.FindAssets("t:textasset"); checkResults.Clear(); diagnoses = new List <Yarn.Analysis.Diagnosis>();; foreach (var guid in list) { var path = AssetDatabase.GUIDToAssetPath(guid); if (path.EndsWith(".json")) { var asset = AssetDatabase.LoadAssetAtPath <TextAsset>(path); var newResult = new CheckerResult(asset); checkResults.Add(newResult); } } }
// Validates a single script. ValidationMessage[] ValidateFile(TextAsset script, Analysis.Context analysisContext, out CheckerResult.State result) { var messageList = new List<ValidationMessage>(); var variableStorage = new Yarn.MemoryVariableStore(); var dialog = new Dialogue(variableStorage); bool failed = false; dialog.LogErrorMessage = delegate (string message) { var msg = new ValidationMessage(); msg.type = MessageType.Error; msg.message = message; messageList.Add(msg); // any errors means this validation failed failed = true; }; dialog.LogDebugMessage = delegate (string message) { var msg = new ValidationMessage(); msg.type = MessageType.Info; msg.message = message; messageList.Add(msg); }; try { dialog.LoadString(script.text,script.name); } catch (System.Exception e) { dialog.LogErrorMessage(e.Message); } dialog.Analyse(analysisContext); if (failed) { result = CheckerResult.State.Failed; } else { result = CheckerResult.State.Passed; } return messageList.ToArray(); }
void UpdateJSONList() { // Find all TextAssets var list = AssetDatabase.FindAssets("t:textasset"); checkResults.Clear(); diagnoses = new List<Yarn.Analysis.Diagnosis>();; foreach (var guid in list) { var path = AssetDatabase.GUIDToAssetPath(guid); if (path.EndsWith(".json")) { var asset = AssetDatabase.LoadAssetAtPath<TextAsset>(path); var newResult = new CheckerResult(asset); checkResults.Add(newResult); } } }
CheckerResult CheckCurrentWeatherInfo() { FeitionPoster poster = new FeitionPoster(this.ReceiverMan.FeitionAccount); OWMCurWeather record = null; try { OWMWebRequest <OWMCurWeather> req = new OWMWebRequest <OWMCurWeather>( OWMPublic.OWMRequest(OWMRequestKind.CurrentWeather), this.ReceiverMan.Location.OWM.CityID, this.ReceiverMan.Location.OWM.CityName); req.Coordinary = this.ReceiverMan.Location.OWM.Coordinary; req.Language = "zh_cn"; record = req.GetResponse(); } catch (Exception ex) { CheckerLogWrite(string.Format("CheckCurrentWeatherInfo: {0}", ex.ToString())); } if (record == null) { CheckerLogWrite("OWMWebRequest<OWMCurWeather>:GetResponse returns null."); return(CheckerResult.NetworkIssue); } if (HRWNRiskDefinition.Instance.IsRiskWeather(record)) { // Maybe the fog weather is fake if there is. CheckerResult cResult = CheckChineseSpecialFogWeather(record); switch (cResult) { case CheckerResult.Sent: case CheckerResult.Existing: case CheckerResult.IsNotRisk: { CheckerLogWrite("Current Weather: This is a chinese fake fog, report AQI successfully instead."); // and we just regard it as a good check process is done. return(CheckerResult.Sent); } case CheckerResult.NetworkIssue: case CheckerResult.DataIssue: { CheckerLogWrite("Current Weather: Not sure whether this is a chinese fake fog as it failed to get AQI data."); // and we just regard it as a good check process is done. return(CheckerResult.Sent); } } string str = record.GetReadableText(this.ReceiverMan.Location.OWM.CityNickName); poster.AppendMessage(str); bool fExist = curWeatherHistoryList.Exists(record); if (fExist) { //ConsoleMe.WriteLine("Existing current weather: {0}.", record.ToString()); CheckerLogWrite("Existing current weather."); return(CheckerResult.Existing); } bool status = poster.Send(); if (!fExist && status) { curWeatherHistoryList.Add(record); } poster.ResetMessage(); return(CheckerResult.Sent); } else { CheckerLogWrite("OWMCurWeather: isn't a risk."); return(CheckerResult.IsNotRisk); } }