From ed717ec181ef9946fbb5182d59e9f051ae1478ac Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Mon, 26 May 2008 16:16:48 +0000 Subject: Thank you kindly, Melanie for a patch for script reset that creates the event handler chain ready to hook by script engines --- OpenSim/Region/Environment/Scenes/EventManager.cs | 12 ++++++++++++ OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 9 +++++++++ OpenSim/Region/Environment/Scenes/Scene.cs | 1 + 3 files changed, 22 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs index 6cecb6d..e77bebc 100644 --- a/OpenSim/Region/Environment/Scenes/EventManager.cs +++ b/OpenSim/Region/Environment/Scenes/EventManager.cs @@ -85,11 +85,13 @@ namespace OpenSim.Region.Environment.Scenes public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient); public delegate void ObjectDeGrabDelegate(uint localID, IClientAPI remoteClient); + public delegate void ScriptResetDelegate(uint localID, LLUUID itemID); public delegate void OnPermissionErrorDelegate(LLUUID user, string reason); public event ObjectGrabDelegate OnObjectGrab; public event ObjectDeGrabDelegate OnObjectDeGrab; + public event ScriptResetDelegate OnScriptReset; public event OnPermissionErrorDelegate OnPermissionError; @@ -310,6 +312,7 @@ namespace OpenSim.Region.Environment.Scenes private OnShutdownDelegate handlerShutdown = null; //OnShutdown; private ObjectGrabDelegate handlerObjectGrab = null; //OnObjectGrab; private ObjectDeGrabDelegate handlerObjectDeGrab = null; //OnObjectDeGrab; + private ScriptResetDelegate handlerScriptReset = null; // OnScriptReset private NewRezScript handlerRezScript = null; //OnRezScript; private RemoveScript handlerRemoveScript = null; //OnRemoveScript; private SceneGroupMoved handlerSceneGroupMove = null; //OnSceneGroupMove; @@ -484,6 +487,15 @@ namespace OpenSim.Region.Environment.Scenes } } + public void TriggerScriptReset(uint localID, LLUUID itemID) + { + handlerScriptReset = OnScriptReset; + if (handlerScriptReset != null) + { + handlerScriptReset(localID, itemID); + } + } + public void TriggerRezScript(uint localID, LLUUID itemID, string script) { handlerRezScript = OnRezScript; diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 8419399..41bd2d3 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -288,5 +288,14 @@ namespace OpenSim.Region.Environment.Scenes } client.SendAvatarPickerReply(agent_data, data_args); } + + public void ProcessScriptReset(IClientAPI remoteClient, LLUUID objectID, + LLUUID itemID) + { + SceneObjectPart part=GetSceneObjectPart(objectID); + if(part == null) + return; + EventManager.TriggerScriptReset(part.LocalId, itemID); + } } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 4d380f9..c9f23af 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -1704,6 +1704,7 @@ namespace OpenSim.Region.Environment.Scenes client.OnUndo += m_innerScene.HandleUndo; client.OnObjectGroupRequest += m_innerScene.HandleObjectGroupUpdate; client.OnParcelReturnObjectsRequest += LandChannel.ReturnObjectsInParcel; + client.OnScriptReset += ProcessScriptReset; // EventManager.TriggerOnNewClient(client); } -- cgit v1.1