From e3c14e9b24350bc4065172ddf6be90116a3a538c Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Thu, 5 Jun 2008 14:15:15 +0000 Subject: Mantis#1437. Patch one of four. Thank you kindly, Melanie for: Corrects the XEngine's script startup semantics. Completes llRequestAgentData Implements llDetectedLink Fixes a few minor issues --- .../Region/ScriptEngine/XEngine/EventManager.cs | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'OpenSim/Region/ScriptEngine/XEngine/EventManager.cs') diff --git a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs index b35b5a3..59c54f0 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs @@ -79,8 +79,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; + SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart( + localID); + if(part == null) + return; + + det[0].LinkNum = 0; + if(part.ParentGroup.Children.Count > 0) + det[0].LinkNum = part.LinkNum + 1; + myScriptEngine.PostObjectEvent(localID, new XEventParams( "touch_start", new Object[] { new LSL_Types.LSLInteger(1) }, det)); @@ -91,11 +101,21 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; det[0].OffsetPos = new LSL_Types.Vector3(offsetPos.X, offsetPos.Y, offsetPos.Z); + SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart( + localID); + if(part == null) + return; + + det[0].LinkNum = 0; + if(part.ParentGroup.Children.Count > 0) + det[0].LinkNum = part.LinkNum + 1; + myScriptEngine.PostObjectEvent(localID, new XEventParams( "touch", new Object[] { new LSL_Types.LSLInteger(1) }, det)); @@ -105,8 +125,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; + SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart( + localID); + if(part == null) + return; + + det[0].LinkNum = 0; + if(part.ParentGroup.Children.Count > 0) + det[0].LinkNum = part.LinkNum + 1; + myScriptEngine.PostObjectEvent(localID, new XEventParams( "touch_end", new Object[] { new LSL_Types.LSLInteger(1) }, det)); @@ -137,6 +167,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; myScriptEngine.PostObjectEvent(localID, new XEventParams( @@ -150,6 +181,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; myScriptEngine.PostObjectEvent(localID, new XEventParams( @@ -162,6 +194,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // Add to queue for all scripts in ObjectID object XDetectParams[] det = new XDetectParams[1]; + det[0] = new XDetectParams(); det[0].Key = remoteClient.AgentId; myScriptEngine.PostObjectEvent(localID, new XEventParams( -- cgit v1.1