diff options
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSActorAvatarMove.cs | 2 | ||||
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs | 6 |
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. |