diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | 8 | ||||
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | 3 | ||||
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs | 8 |
3 files changed, 16 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs index a303972..4c54f9f 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |||
@@ -174,15 +174,19 @@ public sealed class BSCharacter : BSPhysObject | |||
174 | PhysScene.PE.UpdateSingleAabb(PhysScene.World, PhysBody); | 174 | PhysScene.PE.UpdateSingleAabb(PhysScene.World, PhysBody); |
175 | 175 | ||
176 | // Do this after the object has been added to the world | 176 | // Do this after the object has been added to the world |
177 | PhysBody.collisionType = CollisionType.Avatar; | 177 | if (BSParam.AvatarToAvatarCollisionsByDefault) |
178 | PhysBody.collisionType = CollisionType.Avatar; | ||
179 | else | ||
180 | PhysBody.collisionType = CollisionType.PhantomToOthersAvatar; | ||
181 | |||
178 | PhysBody.ApplyCollisionMask(PhysScene); | 182 | PhysBody.ApplyCollisionMask(PhysScene); |
179 | } | 183 | } |
180 | 184 | ||
181 | |||
182 | public override void RequestPhysicsterseUpdate() | 185 | public override void RequestPhysicsterseUpdate() |
183 | { | 186 | { |
184 | base.RequestPhysicsterseUpdate(); | 187 | base.RequestPhysicsterseUpdate(); |
185 | } | 188 | } |
189 | |||
186 | // No one calls this method so I don't know what it could possibly mean | 190 | // No one calls this method so I don't know what it could possibly mean |
187 | public override bool Stopped { get { return false; } } | 191 | public override bool Stopped { get { return false; } } |
188 | 192 | ||
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index 867d6ff..e7f4def 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -132,6 +132,7 @@ public static class BSParam | |||
132 | public static float PhysicsUnmanLoggingFrames { get; private set; } | 132 | public static float PhysicsUnmanLoggingFrames { get; private set; } |
133 | 133 | ||
134 | // Avatar parameters | 134 | // Avatar parameters |
135 | public static bool AvatarToAvatarCollisionsByDefault { get; private set; } | ||
135 | public static float AvatarFriction { get; private set; } | 136 | public static float AvatarFriction { get; private set; } |
136 | public static float AvatarStandingFriction { get; private set; } | 137 | public static float AvatarStandingFriction { get; private set; } |
137 | public static float AvatarAlwaysRunFactor { get; private set; } | 138 | public static float AvatarAlwaysRunFactor { get; private set; } |
@@ -571,6 +572,8 @@ public static class BSParam | |||
571 | new ParameterDefn<float>("TerrainCollisionMargin", "Margin where collision checking starts" , | 572 | new ParameterDefn<float>("TerrainCollisionMargin", "Margin where collision checking starts" , |
572 | 0.04f ), | 573 | 0.04f ), |
573 | 574 | ||
575 | new ParameterDefn<bool>("AvatarToAvatarCollisionsByDefault", "Should avatars collide with other avatars by default?", | ||
576 | true), | ||
574 | new ParameterDefn<float>("AvatarFriction", "Factor to reduce movement against an avatar. Changed on avatar recreation.", | 577 | new ParameterDefn<float>("AvatarFriction", "Factor to reduce movement against an avatar. Changed on avatar recreation.", |
575 | 0.2f ), | 578 | 0.2f ), |
576 | new ParameterDefn<float>("AvatarStandingFriction", "Avatar friction when standing. Changed on avatar recreation.", | 579 | new ParameterDefn<float>("AvatarStandingFriction", "Avatar friction when standing. Changed on avatar recreation.", |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs b/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs index 85ef64b..5932461 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimData.cs | |||
@@ -190,6 +190,7 @@ public class BulletHMapInfo | |||
190 | public enum CollisionType | 190 | public enum CollisionType |
191 | { | 191 | { |
192 | Avatar, | 192 | Avatar, |
193 | PhantomToOthersAvatar, // An avatar that it phantom to other avatars but not to anything else | ||
193 | Groundplane, | 194 | Groundplane, |
194 | Terrain, | 195 | Terrain, |
195 | Static, | 196 | Static, |
@@ -231,7 +232,12 @@ public static Dictionary<CollisionType, CollisionTypeFilterGroup> CollisionTypeM | |||
231 | { CollisionType.Avatar, | 232 | { CollisionType.Avatar, |
232 | new CollisionTypeFilterGroup(CollisionType.Avatar, | 233 | new CollisionTypeFilterGroup(CollisionType.Avatar, |
233 | (uint)CollisionFilterGroups.BCharacterGroup, | 234 | (uint)CollisionFilterGroups.BCharacterGroup, |
234 | (uint)(CollisionFilterGroups.BAllGroup & ~CollisionFilterGroups.BCharacterGroup)) | 235 | (uint)(CollisionFilterGroups.BAllGroup)) |
236 | }, | ||
237 | { CollisionType.PhantomToOthersAvatar, | ||
238 | new CollisionTypeFilterGroup(CollisionType.PhantomToOthersAvatar, | ||
239 | (uint)CollisionFilterGroups.BCharacterGroup, | ||
240 | (uint)(CollisionFilterGroups.BAllGroup & ~CollisionFilterGroups.BCharacterGroup)) | ||
235 | }, | 241 | }, |
236 | { CollisionType.Groundplane, | 242 | { CollisionType.Groundplane, |
237 | new CollisionTypeFilterGroup(CollisionType.Groundplane, | 243 | new CollisionTypeFilterGroup(CollisionType.Groundplane, |