diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 6e7b568..4d193ba 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -4880,6 +4880,20 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4880 | pa.Friction = Friction; | 4880 | pa.Friction = Friction; |
4881 | pa.Restitution = Restitution; | 4881 | pa.Restitution = Restitution; |
4882 | 4882 | ||
4883 | if(LocalId == ParentGroup.RootPart.LocalId) | ||
4884 | { | ||
4885 | // ugly code: physics should also get a byte and not a Vector3 TODO | ||
4886 | Vector3 lrRotationAxis = Vector3.One; | ||
4887 | if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) != 0 ) | ||
4888 | lrRotationAxis.X = 0f; | ||
4889 | if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y) != 0 ) | ||
4890 | lrRotationAxis.Y = 0f; | ||
4891 | if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z) != 0 ) | ||
4892 | lrRotationAxis.Z = 0f; | ||
4893 | |||
4894 | pa.LockAngularMotion(lrRotationAxis); | ||
4895 | } | ||
4896 | |||
4883 | if (VolumeDetectActive) // change if not the default only | 4897 | if (VolumeDetectActive) // change if not the default only |
4884 | pa.SetVolumeDetect(1); | 4898 | pa.SetVolumeDetect(1); |
4885 | 4899 | ||