diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 9c20004..c157669 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -1353,6 +1353,7 @@ public sealed class BSPrim : PhysicsActor | |||
1353 | } | 1353 | } |
1354 | 1354 | ||
1355 | // I've collided with something | 1355 | // I've collided with something |
1356 | // Called at taint time from within the Step() function | ||
1356 | CollisionEventUpdate collisionCollection; | 1357 | CollisionEventUpdate collisionCollection; |
1357 | public void Collide(uint collidingWith, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth) | 1358 | public void Collide(uint collidingWith, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth) |
1358 | { | 1359 | { |
@@ -1366,6 +1367,15 @@ public sealed class BSPrim : PhysicsActor | |||
1366 | } | 1367 | } |
1367 | 1368 | ||
1368 | // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith); | 1369 | // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith); |
1370 | BSPrim collidingWithPrim; | ||
1371 | if (_scene.Prims.TryGetValue(collidingWith, out collidingWithPrim)) | ||
1372 | { | ||
1373 | // prims in the same linkset cannot collide with each other | ||
1374 | if (this.Linkset.LinksetID == collidingWithPrim.Linkset.LinksetID) | ||
1375 | { | ||
1376 | return; | ||
1377 | } | ||
1378 | } | ||
1369 | 1379 | ||
1370 | // if someone is subscribed to collision events.... | 1380 | // if someone is subscribed to collision events.... |
1371 | if (_subscribedEventsMs != 0) { | 1381 | if (_subscribedEventsMs != 0) { |