aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs2
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs6
2 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs b/OpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs
index c0589cd..68bc1b9 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs
@@ -183,7 +183,7 @@ public class BSActorAvatarMove : BSActor
183 if (m_controllingPrim.IsColliding) 183 if (m_controllingPrim.IsColliding)
184 { 184 {
185 // If we are colliding with a stationary object, presume we're standing and don't move around 185 // If we are colliding with a stationary object, presume we're standing and don't move around
186 if (!m_controllingPrim.ColliderIsMoving) 186 if (!m_controllingPrim.ColliderIsMoving && !m_controllingPrim.ColliderIsVolumeDetect)
187 { 187 {
188 m_physicsScene.DetailLog("{0},BSCharacter.MoveMotor,collidingWithStationary,zeroingMotion", m_controllingPrim.LocalID); 188 m_physicsScene.DetailLog("{0},BSCharacter.MoveMotor,collidingWithStationary,zeroingMotion", m_controllingPrim.LocalID);
189 m_controllingPrim.IsStationary = true; 189 m_controllingPrim.IsStationary = true;
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
index b26fef0..9dc52d5 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
@@ -132,7 +132,8 @@ public abstract class BSPhysObject : PhysicsActor
132 public string PhysObjectName { get; protected set; } 132 public string PhysObjectName { get; protected set; }
133 public string TypeName { get; protected set; } 133 public string TypeName { get; protected set; }
134 134
135 // Set to 'true' when the object is completely initialized 135 // Set to 'true' when the object is completely initialized.
136 // This mostly prevents property updates and collisions until the object is completely here.
136 public bool IsInitialized { get; protected set; } 137 public bool IsInitialized { get; protected set; }
137 138
138 // Return the object mass without calculating it or having side effects 139 // Return the object mass without calculating it or having side effects
@@ -356,6 +357,8 @@ public abstract class BSPhysObject : PhysicsActor
356 // On a collision, check the collider and remember if the last collider was moving 357 // On a collision, check the collider and remember if the last collider was moving
357 // Used to modify the standing of avatars (avatars on stationary things stand still) 358 // Used to modify the standing of avatars (avatars on stationary things stand still)
358 public bool ColliderIsMoving; 359 public bool ColliderIsMoving;
360 // 'true' if the last collider was a volume detect object
361 public bool ColliderIsVolumeDetect;
359 // Used by BSCharacter to manage standing (and not slipping) 362 // Used by BSCharacter to manage standing (and not slipping)
360 public bool IsStationary; 363 public bool IsStationary;
361 364
@@ -435,6 +438,7 @@ public abstract class BSPhysObject : PhysicsActor
435 438
436 // For movement tests, remember if we are colliding with an object that is moving. 439 // For movement tests, remember if we are colliding with an object that is moving.
437 ColliderIsMoving = collidee != null ? (collidee.RawVelocity != OMV.Vector3.Zero) : false; 440 ColliderIsMoving = collidee != null ? (collidee.RawVelocity != OMV.Vector3.Zero) : false;
441 ColliderIsVolumeDetect = collidee != null ? (collidee.IsVolumeDetect) : false;
438 442
439 // Make a collection of the collisions that happened the last simulation tick. 443 // Make a collection of the collisions that happened the last simulation tick.
440 // This is different than the collection created for sending up to the simulator as it is cleared every tick. 444 // This is different than the collection created for sending up to the simulator as it is cleared every tick.