Example #1
0
    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);
    }
Example #2
0
 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;
     }
 }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
    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;
        }
    }