void ObjectDeselectHandler(Packet packet, Agent agent) { ObjectDeselectPacket deselect = (ObjectDeselectPacket)packet; for (int i = 0; i < deselect.ObjectData.Length; i++) { uint localID = deselect.ObjectData[i].ObjectLocalID; SimulationObject obj; if (server.Scene.TryGetObject(localID, out obj)) { //Logger.DebugLog("Deselecting object " + obj.Prim.LocalID); } } // TODO: Do we need this at all? }
/// <summary> /// Deselect multiple objects. /// </summary> /// <param name="simulator">The <see cref="Simulator"/> the objects are located</param> /// <param name="localIDs">An array containing the Local IDs of the objects</param> public void DeselectObjects(Simulator simulator, uint[] localIDs) { ObjectDeselectPacket deselect = new ObjectDeselectPacket(); deselect.AgentData.AgentID = Client.Self.AgentID; deselect.AgentData.SessionID = Client.Self.SessionID; deselect.ObjectData = new ObjectDeselectPacket.ObjectDataBlock[localIDs.Length]; for (int i = 0; i < localIDs.Length; i++) { deselect.ObjectData[i] = new ObjectDeselectPacket.ObjectDataBlock(); deselect.ObjectData[i].ObjectLocalID = localIDs[i]; } Client.Network.SendPacket(deselect, simulator); }
/// <summary> /// Deselect a single object /// </summary> /// <param name="simulator">The <see cref="Simulator"/> the object is located</param> /// <param name="localID">The Local ID of the object</param> public void DeselectObject(Simulator simulator, uint localID) { ObjectDeselectPacket deselect = new ObjectDeselectPacket(); deselect.AgentData.AgentID = Client.Self.AgentID; deselect.AgentData.SessionID = Client.Self.SessionID; deselect.ObjectData = new ObjectDeselectPacket.ObjectDataBlock[1]; deselect.ObjectData[0] = new ObjectDeselectPacket.ObjectDataBlock(); deselect.ObjectData[0].ObjectLocalID = localID; Client.Network.SendPacket(deselect, simulator); }