Beispiel #1
0
        public override void inbox(ExtraMegaBlob.References.Event ev)
        {
            if (!ready)
            {
                return;
            }
            switch (ev._Keyword)
            {
            case KeyWord.PLAYER_RESET:
                chat("resetting player");

                Quaternion q = new Quaternion(
                    float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_W].Value),
                    float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_X].Value),
                    float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_Y].Value),
                    float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_Z].Value));

                Mogre.Vector3 v = new Mogre.Vector3(
                    float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_X].Value),
                    float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_Y].Value),
                    float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_Z].Value));

                resetPlayer2(v, q);

                break;

            case KeyWord.CMD_GO:
                this.logConsole("parsing coordinates");

                string arguments = ev._Memories[KeyWord.DATA_STRING].Value.Trim();
                if (arguments == "")
                {
                    return;
                }
                //" -63.60852f, 95.18869f, -115.0435f "

                //resetPlayer2(v, q);
                string[]      x = arguments.Split(',');
                int           a = 0;
                Mogre.Vector3 u = new Mogre.Vector3();
                try
                {
                    for (int s = 0; s < x.Length; s++)
                    {
                        string j = x[s].Trim().Replace("f", "");
                        if (j != "")
                        {
                            switch (a)
                            {
                            case 0:
                                u.x = float.Parse(j);
                                a++;
                                break;

                            case 1:
                                u.y = float.Parse(j);
                                a++;
                                break;

                            case 2:
                                u.z = float.Parse(j);
                                a++;
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
                catch
                {
                }
                resetPlayer2(u, nodes["drone"].Orientation);
                this.logConsole("coordinates: " + u.ToString());

                break;

            case KeyWord.PLAYER_FREEZE:
                player_freeze = true;
                break;

            case KeyWord.PLAYER_UNFREEZE:
                player_freeze = false;
                break;

            default:
                break;
            }
        }
        public override void inbox(ExtraMegaBlob.References.Event ev)
        {
            if (!ready) return;
            switch (ev._Keyword)
            {
                case KeyWord.PLAYER_RESET:
                    chat("resetting player");

                    Quaternion q = new Quaternion(
                        float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_W].Value),
                        float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_X].Value),
                        float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_Y].Value),
                        float.Parse(ev._Memories[KeyWord.DATA_QUATERNION_Z].Value));

                    Mogre.Vector3 v = new Mogre.Vector3(
                        float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_X].Value),
                        float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_Y].Value),
                        float.Parse(ev._Memories[KeyWord.DATA_VECTOR3_Z].Value));

                    resetPlayer2(v, q);

                    break;
                case KeyWord.CMD_GO:
                    this.logConsole("parsing coordinates");

                    string arguments = ev._Memories[KeyWord.DATA_STRING].Value.Trim();
                    if (arguments == "") return;
                    //" -63.60852f, 95.18869f, -115.0435f "

                    //resetPlayer2(v, q);
                    string[] x = arguments.Split(',');
                    int a = 0;
                    Mogre.Vector3 u = new Mogre.Vector3();
                    try
                    {
                        for (int s = 0; s < x.Length; s++)
                        {
                            string j = x[s].Trim().Replace("f", "");
                            if (j != "")
                            {
                                switch (a)
                                {
                                    case 0:
                                        u.x = float.Parse(j);
                                        a++;
                                        break;
                                    case 1:
                                        u.y = float.Parse(j);
                                        a++;
                                        break;
                                    case 2:
                                        u.z = float.Parse(j);
                                        a++;
                                        break;
                                    default:
                                        break;
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    resetPlayer2(u, nodes["drone"].Orientation);
                    this.logConsole("coordinates: " + u.ToString());

                    break;
                case KeyWord.PLAYER_FREEZE:
                    player_freeze = true;
                    break;
                case KeyWord.PLAYER_UNFREEZE:
                    player_freeze = false;
                    break;
                default:
                    break;
            }
        }