From a4a1ff3d9b187dd4fad063510ae47bacac6904cd Mon Sep 17 00:00:00 2001 From: MW Date: Sat, 17 Nov 2007 12:03:20 +0000 Subject: 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. --- OpenSim/Framework/IClientAPI.cs | 2 +- OpenSim/Region/ClientStack/ClientView.API.cs | 4 ++-- OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 14 +++++++++++++- OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 06a8bab..e482cca 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -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); diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index f0ebf03..6f15c44 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -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; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index b2e585d..0da90d5 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -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 /// @@ -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 diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 07d43b8..d107aab 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -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) { } -- cgit v1.1