Fix land collisions to work like SL.
parent
fd176aab8f
commit
170b820a11
|
@ -2626,14 +2626,24 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify)
|
private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify)
|
||||||
{
|
{
|
||||||
if ((ParentGroup.RootPart.ScriptEvents & ev) != 0)
|
bool sendToRoot = true;
|
||||||
{
|
|
||||||
ColliderArgs LandCollidingMessage = new ColliderArgs();
|
ColliderArgs LandCollidingMessage = new ColliderArgs();
|
||||||
List<DetectedObject> colliding = new List<DetectedObject>();
|
List<DetectedObject> colliding = new List<DetectedObject>();
|
||||||
|
|
||||||
colliding.Add(CreateDetObjectForGround());
|
colliding.Add(CreateDetObjectForGround());
|
||||||
LandCollidingMessage.Colliders = colliding;
|
LandCollidingMessage.Colliders = colliding;
|
||||||
|
|
||||||
|
if (Inventory.ContainsScripts())
|
||||||
|
{
|
||||||
|
if (!PassCollisions)
|
||||||
|
sendToRoot = false;
|
||||||
|
}
|
||||||
|
if ((ScriptEvents & ev) != 0)
|
||||||
|
notify(LocalId, LandCollidingMessage);
|
||||||
|
|
||||||
|
if ((ParentGroup.RootPart.ScriptEvents & ev) != 0 && sendToRoot)
|
||||||
|
{
|
||||||
notify(ParentGroup.RootPart.LocalId, LandCollidingMessage);
|
notify(ParentGroup.RootPart.LocalId, LandCollidingMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue