Exemplo n.º 1
0
        // Scripted

        public override OSDMap ToOSD()
        {
            // DEBUG ON
            //MainConsole.Instance.WarnFormat("[CHILDAGENTDATAUPDATE] Pack data");
            // DEBUG OFF

            OSDMap args = new OSDMap();

            args["message_type"] = OSD.FromString("AgentData");

            args["region_id"]    = OSD.FromString(RegionID.ToString());
            args["circuit_code"] = OSD.FromString(CircuitCode.ToString());
            args["agent_uuid"]   = OSD.FromUUID(AgentID);
            args["session_uuid"] = OSD.FromUUID(SessionID);

            args["position"]  = OSD.FromString(Position.ToString());
            args["velocity"]  = OSD.FromString(Velocity.ToString());
            args["center"]    = OSD.FromString(Center.ToString());
            args["size"]      = OSD.FromString(Size.ToString());
            args["at_axis"]   = OSD.FromString(AtAxis.ToString());
            args["left_axis"] = OSD.FromString(LeftAxis.ToString());
            args["up_axis"]   = OSD.FromString(UpAxis.ToString());

            args["far"]    = OSD.FromReal(Far);
            args["aspect"] = OSD.FromReal(Aspect);

            if ((Throttles != null) && (Throttles.Length > 0))
            {
                args["throttles"] = OSD.FromBinary(Throttles);
            }

            args["locomotion_state"] = OSD.FromString(LocomotionState.ToString());
            args["head_rotation"]    = OSD.FromString(HeadRotation.ToString());
            args["body_rotation"]    = OSD.FromString(BodyRotation.ToString());
            args["control_flags"]    = OSD.FromString(ControlFlags.ToString());

            args["energy_level"]           = OSD.FromReal(EnergyLevel);
            args["speed"]                  = OSD.FromString(Speed.ToString());
            args["god_level"]              = OSD.FromString(GodLevel.ToString());
            args["draw_distance"]          = OSD.FromReal(DrawDistance);
            args["always_run"]             = OSD.FromBoolean(AlwaysRun);
            args["sent_initial_wearables"] = OSD.FromBoolean(SentInitialWearables);
            args["prey_agent"]             = OSD.FromUUID(PreyAgent);
            args["agent_access"]           = OSD.FromString(AgentAccess.ToString());

            args["active_group_id"] = OSD.FromUUID(ActiveGroupID);
            args["IsCrossing"]      = IsCrossing;

            args["SittingObjects"] = SittingObjects.ToOSD();

            if ((Anims != null) && (Anims.Length > 0))
            {
                OSDArray anims = new OSDArray(Anims.Length);
                foreach (Animation aanim in Anims)
                {
                    anims.Add(aanim.ToOSD());
                }
                args["animations"] = anims;
            }

            if (Appearance != null)
            {
                args["packed_appearance"] = Appearance.Pack();
            }

            if ((Controllers != null) && (Controllers.Length > 0))
            {
                OSDArray controls = new OSDArray(Controllers.Length);
                foreach (ControllerData ctl in Controllers)
                {
                    controls.Add(ctl.ToOSD());
                }
                args["controllers"] = controls;
            }

            return(args);
        }