diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 4ea5f2073a..72dc9c0a85 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -740,5 +740,10 @@ namespace OpenSim.Region.Environment.Scenes { } + + public void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) + { + this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); + } } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 08722a0706..8ee5856252 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -612,6 +612,8 @@ namespace OpenSim.Region.Environment.Scenes //client.OnCreateNewInventoryFolder += commsManager.UserProfiles.HandleCreateInventoryFolder; client.OnFetchInventoryDescendents += commsManager.UserProfiles.HandleFecthInventoryDescendents; client.OnRequestTaskInventory += RequestTaskInventory; + + client.OnGrabObject += ProcessObjectGrab; } protected ScenePresence CreateAndAddScenePresence(IClientAPI client) diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs index 1df95cf0a5..cb5a967c6a 100644 --- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs +++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs @@ -1,4 +1,5 @@ using libsecondlife; +using OpenSim.Framework.Interfaces; namespace OpenSim.Region.Environment.Scenes { @@ -31,6 +32,9 @@ namespace OpenSim.Region.Environment.Scenes public delegate void OnShutdownDelegate(); public event OnShutdownDelegate OnShutdown; + public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient); + public event ObjectGrabDelegate OnObjectGrab; + public void TriggerOnScriptConsole(string[] args) { if (OnScriptConsole != null) @@ -87,5 +91,11 @@ namespace OpenSim.Region.Environment.Scenes if (OnShutdown != null) OnShutdown(); } + + public void TriggerObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) + { + if (OnObjectGrab != null) + OnObjectGrab(localID, offsetPos, remoteClient); + } } }