mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
* This sends collision events to the script engine.
* Unfortunately, there's some kludges with the Async manager and the llDetected functions that I have yet to decipher... so llDetected functions don't work with collision events at the moment....
This commit is contained in:
@@ -562,6 +562,25 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
return resolveName(SensedUUID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ScriptManager sm;
|
||||
IScript script = null;
|
||||
|
||||
if ((sm = m_ScriptEngine.m_ScriptManager) != null)
|
||||
{
|
||||
if (sm.Scripts.ContainsKey(m_localID))
|
||||
{
|
||||
if ((script = sm.GetScript(m_localID, m_itemID)) != null)
|
||||
{
|
||||
if (script.llDetectParams._bool.Length > number && script.llDetectParams._bool[number])
|
||||
{
|
||||
return script.llDetectParams._string[number];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
@@ -587,9 +606,12 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
{
|
||||
if ((script = sm.GetScript(m_localID, m_itemID)) != null)
|
||||
{
|
||||
if (script.llDetectParams._key[0])
|
||||
if (script.llDetectParams._bool.Length > number && script.llDetectParams._bool[number])
|
||||
{
|
||||
return new LLUUID(script.llDetectParams._key[0]);
|
||||
LLUUID returnUUID = LLUUID.Zero;
|
||||
Helpers.TryParse(script.llDetectParams._key[number], out returnUUID);
|
||||
|
||||
return returnUUID;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -614,6 +636,35 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
return SensedObject;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ScriptManager sm;
|
||||
IScript script = null;
|
||||
|
||||
if ((sm = m_ScriptEngine.m_ScriptManager) != null)
|
||||
{
|
||||
if (sm.Scripts.ContainsKey(m_localID))
|
||||
{
|
||||
if ((script = sm.GetScript(m_localID, m_itemID)) != null)
|
||||
{
|
||||
if (script.llDetectParams._key[number])
|
||||
{
|
||||
EntityBase SensedObject = null;
|
||||
LLUUID SensedUUID = LLUUID.Zero;
|
||||
Helpers.TryParse(script.llDetectParams._key.ToString(), out SensedUUID);
|
||||
if (SensedUUID == LLUUID.Zero)
|
||||
return null;
|
||||
lock (World.Entities)
|
||||
{
|
||||
World.Entities.TryGetValue(SensedUUID, out SensedObject);
|
||||
}
|
||||
return SensedObject;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user