Example #1
0
 public void SendObjectExtraParams(
     ScriptInstance instance,
     ViewerAgentAccessor agent,
     VcExtraParamsDataList objectData)
 {
     lock (instance)
     {
         ViewerConnection vc;
         ViewerCircuit    viewerCircuit;
         if (m_Clients.TryGetValue(agent.AgentID, out vc) &&
             vc.ViewerCircuits.TryGetValue((uint)agent.CircuitCode, out viewerCircuit))
         {
             var m = new ObjectExtraParams
             {
                 AgentID   = agent.AgentID,
                 SessionID = viewerCircuit.SessionID,
             };
             foreach (VcExtraParamsData d in objectData)
             {
                 if ((d.Flags & VC_EXTRA_PARAMS_DATA_SET_FLEXI_EP) != 0)
                 {
                     byte[] data = d.ExtraParams.GetFlexibleData();
                     m.ObjectData.Add(new ObjectExtraParams.Data
                     {
                         ObjectLocalID = (uint)d.LocalID,
                         ParamType     = 0x0010,
                         ParamInUse    = data != null,
                         ParamSize     = data != null ? (uint)data.Length : 0,
                         ParamData     = data ?? new byte[0]
                     });
                 }
                 if ((d.Flags & VC_EXTRA_PARAMS_DATA_SET_LIGHT_EP) != 0)
                 {
                     byte[] data = d.ExtraParams.GetLightData();
                     m.ObjectData.Add(new ObjectExtraParams.Data
                     {
                         ObjectLocalID = (uint)d.LocalID,
                         ParamType     = 0x0020,
                         ParamInUse    = data != null,
                         ParamSize     = data != null ? (uint)data.Length : 0,
                         ParamData     = data ?? new byte[0]
                     });
                 }
                 if ((d.Flags & VC_EXTRA_PARAMS_DATA_SET_SCULPT_EP) != 0)
                 {
                     byte[] data = d.ExtraParams.GetSculptData();
                     m.ObjectData.Add(new ObjectExtraParams.Data
                     {
                         ObjectLocalID = (uint)d.LocalID,
                         ParamType     = 0x0030,
                         ParamInUse    = data != null,
                         ParamSize     = data != null ? (uint)data.Length : 0,
                         ParamData     = data ?? new byte[0]
                     });
                 }
                 if ((d.Flags & VC_EXTRA_PARAMS_DATA_SET_PROJECTION_EP) != 0)
                 {
                     byte[] data = d.ExtraParams.GetProjectData();
                     m.ObjectData.Add(new ObjectExtraParams.Data
                     {
                         ObjectLocalID = (uint)d.LocalID,
                         ParamType     = 0x0040,
                         ParamInUse    = data != null,
                         ParamSize     = data != null ? (uint)data.Length : 0,
                         ParamData     = data ?? new byte[0]
                     });
                 }
                 if ((d.Flags & VC_EXTRA_PARAMS_DATA_SET_EXTENDEDMESH_EP) != 0)
                 {
                     byte[] data = d.ExtraParams.GetEMeshData();
                     m.ObjectData.Add(new ObjectExtraParams.Data
                     {
                         ObjectLocalID = (uint)d.LocalID,
                         ParamType     = 0x0070,
                         ParamInUse    = data != null,
                         ParamSize     = data != null ? (uint)data.Length : 0,
                         ParamData     = data ?? new byte[0]
                     });
                 }
             }
             viewerCircuit.SendMessage(m);
         }
     }
 }
Example #2
0
 public void Add(VcExtraParamsDataList list, VcExtraParamsData data)
 {
     list.Add(new VcExtraParamsData(data));
 }