Added ClickAction property to SceneObjectPart (and the relevant changes in IClientAPI so its used), so that the default click action (ie touch, sit, etc) can be set on a prim. Note: Sill need to handle the incoming packets that set this, from the client.

afrisby
MW 2007-11-17 12:03:20 +00:00
parent d71b28c731
commit a4a1ff3d9b
4 changed files with 17 additions and 5 deletions

View File

@ -415,7 +415,7 @@ namespace OpenSim.Framework
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape,
LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color,
uint parentID, byte[] particleSystem, LLQuaternion rotation);
uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction);
void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
LLQuaternion rotation);

View File

@ -1031,7 +1031,7 @@ namespace OpenSim.Region.ClientStack
public void SendPrimitiveToClient(
ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos,
uint flags,
LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, LLQuaternion rotation)
LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction)
{
ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
outPacket.RegionData.RegionHandle = regionHandle;
@ -1050,7 +1050,7 @@ namespace OpenSim.Region.ClientStack
outPacket.ObjectData[0].TextColor[3] = color[3];
outPacket.ObjectData[0].ParentID = parentID;
outPacket.ObjectData[0].PSBlock = particleSystem;
outPacket.ObjectData[0].ClickAction = 0;
outPacket.ObjectData[0].ClickAction = clickAction;
//outPacket.ObjectData[0].Flags = 0;
outPacket.ObjectData[0].Radius = 20;

View File

@ -352,6 +352,17 @@ namespace OpenSim.Region.Environment.Scenes
set { m_touchName = value; }
}
private byte m_clickAction = 0;
public byte ClickAction
{
get { return m_clickAction; }
set
{
m_clickAction = value;
this.ScheduleFullUpdate();
}
}
protected PrimitiveBaseShape m_shape;
public PrimitiveBaseShape Shape
@ -384,6 +395,7 @@ namespace OpenSim.Region.Environment.Scenes
set { m_updateFlag = value; }
}
#region Constructors
/// <summary>
@ -1096,7 +1108,7 @@ namespace OpenSim.Region.Environment.Scenes
byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A };
remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid,
OwnerID,
m_text, color, ParentID, m_particleSystem, lRot);
m_text, color, ParentID, m_particleSystem, lRot, m_clickAction);
}
/// Terse updates

View File

@ -280,7 +280,7 @@ namespace SimpleApp
public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID,
PrimitiveBaseShape primShape, LLVector3 pos, uint flags,
LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID,
byte[] particleSystem, LLQuaternion rotation)
byte[] particleSystem, LLQuaternion rotation, byte clickAction)
{
}