private BrainComponent.Macro GetMacroFromRequest(WebJSON.Request msg) { if (selector.selectedPerso == null || selector.selectedPerso.brain == null) { return(null); } BrainComponent brain = selector.selectedPerso.brain; Pointer offset = msg.Offset; switch (msg.BehaviorType) { case WebJSON.BehaviorType.Macro: if (brain.Macros == null) { return(null); } foreach (var m in brain.Macros) { if (m.Offset == offset) { return(m); } } break; } return(null); }
private void ParseRequestJSON(WebJSON.Request msg) { switch (msg.Type) { // TODO: Other types of requests, like the web version asking for commands of an event // (these are sent separately, otherwise too much to parse at once) case WebJSON.RequestType.Screenshot: TakeScreenshot(msg.Screenshot).Forget(); // Start the async task for taking a screenshot break; } }
private BrainComponent.Comport GetComportFromRequest(WebJSON.Request msg) { if (selector.selectedPerso == null || selector.selectedPerso.brain == null) { return(null); } BrainComponent brain = selector.selectedPerso.brain; Pointer offset = msg.Offset; switch (msg.BehaviorType) { case WebJSON.BehaviorType.Intelligence: if (brain.Intelligence == null) { return(null); } foreach (var be in brain.Intelligence) { if (be.Offset == offset) { return(be); } } break; case WebJSON.BehaviorType.Reflex: if (brain.Reflex == null) { return(null); } foreach (var be in brain.Reflex) { if (be.Offset == offset) { return(be); } } break; } return(null); }
private BaseScriptComponent GetScriptFromRequest(WebJSON.Request msg) { if (selector.selectedPerso == null || selector.selectedPerso.brain == null) { return(null); } BrainComponent brain = selector.selectedPerso.brain; Pointer offset = msg.Offset; switch (msg.BehaviorType) { case WebJSON.BehaviorType.Intelligence: if (brain.Intelligence == null) { return(null); } foreach (var be in brain.Intelligence) { if (be.FirstScript != null && be.FirstScript.Offset == offset) { return(be.FirstScript); } foreach (var s in be.Scripts) { if (s.Offset == offset) { return(s); } } } break; case WebJSON.BehaviorType.Reflex: if (brain.Reflex == null) { return(null); } foreach (var be in brain.Reflex) { if (be.FirstScript != null && be.FirstScript.Offset == offset) { return(be.FirstScript); } foreach (var s in be.Scripts) { if (s.Offset == offset) { return(s); } } } break; case WebJSON.BehaviorType.Macro: if (brain.Macros == null) { return(null); } foreach (var m in brain.Macros) { if (m.Script != null && m.Script.Offset == offset) { return(m.Script); } } break; } return(null); }
private void ParseRequestJSON(WebJSON.Request msg) { switch (msg.Type) { case WebJSON.RequestType.Script: BaseScriptComponent s = GetScriptFromRequest(msg); if (s != null) { Send(new WebJSON.Message() { Type = WebJSON.MessageType.Script, Script = GetScriptJSON(s, true) }); } break; case WebJSON.RequestType.Comport: BrainComponent.Comport c = GetComportFromRequest(msg); if (c != null) { Send(new WebJSON.Message() { Type = WebJSON.MessageType.Comport, Comport = GetComportJSON(c, includeScriptContents: true) }); } break; case WebJSON.RequestType.Macro: BrainComponent.Macro m = GetMacroFromRequest(msg); if (m != null) { Send(new WebJSON.Message() { Type = WebJSON.MessageType.Macro, Macro = GetMacroJSON(m, includeScriptContents: true) }); } break; case WebJSON.RequestType.TransitionExport: if (selectedPerso_ != null && selectedPerso_ is PersoBehaviour) { MindComponent mc = selectedPerso_.GetComponent <MindComponent>(); if (mc != null) { try { var export = mc.TransitionExport; if (export != null) { Send(new WebJSON.Message() { Type = WebJSON.MessageType.TransitionExport, TransitionExport = export }); } } catch (Exception) { } } } break; case WebJSON.RequestType.Screenshot: TakeScreenshot(msg.Screenshot).Forget(); // Start the async task for taking a screenshot break; } }