Completely revamp collision handling. Now works as it is supposed to.

This commit is contained in:
Melanie
2012-05-14 22:45:54 +02:00
parent e78043cb70
commit e3c376156c
5 changed files with 192 additions and 526 deletions

View File

@@ -3198,14 +3198,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
m_host.CollisionFilter.Clear();
if (id != null)
{
m_host.CollisionFilter.Add(accept,id);
}
else
{
m_host.CollisionFilter.Add(accept,name);
}
UUID objectID;
if (!UUID.TryParse(id, out objectID))
objectID = UUID.Zero;
if (objectID == UUID.Zero && name == "")
return;
m_host.CollisionFilter.Add(accept,objectID.ToString() + name);
}
public void llTakeControls(int controls, int accept, int pass_on)
@@ -5023,11 +5024,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (pass == 0)
{
m_host.ParentGroup.PassCollision = false;
m_host.PassCollisions = false;
}
else
{
m_host.ParentGroup.PassCollision = true;
m_host.PassCollisions = true;
}
}