Track selected objects per client

avinationmerge
Melanie Thielker 2015-08-15 02:46:41 +02:00
parent 7aa171e49f
commit 1fb2f0296f
5 changed files with 14 additions and 0 deletions

View File

@ -742,6 +742,8 @@ namespace OpenSim.Framework
IScene Scene { get; } IScene Scene { get; }
List<uint> SelectedObjects { get; }
// [Obsolete("LLClientView Specific - Replace with ???")] // [Obsolete("LLClientView Specific - Replace with ???")]
int NextAnimationSequenceNumber { get; } int NextAnimationSequenceNumber { get; }

View File

@ -474,6 +474,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
set { m_disableFacelights = value; } set { m_disableFacelights = value; }
} }
public List<uint> SelectedObjects {get; private set;}
public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } }
@ -494,6 +495,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// DebugPacketLevel = 1; // DebugPacketLevel = 1;
CloseSyncLock = new Object(); CloseSyncLock = new Object();
SelectedObjects = new List<uint>();
RegisterInterface<IClientIM>(this); RegisterInterface<IClientIM>(this);
RegisterInterface<IClientInventory>(this); RegisterInterface<IClientInventory>(this);
@ -7347,6 +7349,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
for (int i = 0; i < incomingselect.ObjectData.Length; i++) for (int i = 0; i < incomingselect.ObjectData.Length; i++)
{ {
if (!SelectedObjects.Contains(incomingselect.ObjectData[i].ObjectLocalID))
SelectedObjects.Add(incomingselect.ObjectData[i].ObjectLocalID);
handlerObjectSelect = OnObjectSelect; handlerObjectSelect = OnObjectSelect;
if (handlerObjectSelect != null) if (handlerObjectSelect != null)
{ {
@ -7373,6 +7377,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
for (int i = 0; i < incomingdeselect.ObjectData.Length; i++) for (int i = 0; i < incomingdeselect.ObjectData.Length; i++)
{ {
if (!SelectedObjects.Contains(incomingdeselect.ObjectData[i].ObjectLocalID))
SelectedObjects.Add(incomingdeselect.ObjectData[i].ObjectLocalID);
handlerObjectDeselect = OnObjectDeselect; handlerObjectDeselect = OnObjectDeselect;
if (handlerObjectDeselect != null) if (handlerObjectDeselect != null)
{ {

View File

@ -68,6 +68,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
private bool m_connected = true; private bool m_connected = true;
public List<uint> SelectedObjects {get; private set;}
public IRCClientView(TcpClient client, Scene scene) public IRCClientView(TcpClient client, Scene scene)
{ {
m_client = client; m_client = client;

View File

@ -65,6 +65,8 @@ namespace OpenSim.Region.OptionalModules.World.NPC
private readonly Scene m_scene; private readonly Scene m_scene;
private readonly UUID m_ownerID; private readonly UUID m_ownerID;
public List<uint> SelectedObjects {get; private set;}
public NPCAvatar( public NPCAvatar(
string firstname, string lastname, Vector3 position, UUID ownerID, bool senseAsAgent, Scene scene) string firstname, string lastname, Vector3 position, UUID ownerID, bool senseAsAgent, Scene scene)
{ {

View File

@ -442,6 +442,8 @@ namespace OpenSim.Tests.Common.Mock
get { return new IPEndPoint(IPAddress.Loopback, (ushort)m_circuitCode); } get { return new IPEndPoint(IPAddress.Loopback, (ushort)m_circuitCode); }
} }
public List<uint> SelectedObjects {get; private set;}
/// <summary> /// <summary>
/// Constructor /// Constructor
/// </summary> /// </summary>