also apply axis locks, when creating a prim physics actor

avinationmerge
UbitUmarov 2015-10-20 18:21:13 +01:00
parent 3e25430e3a
commit 3c69071145
1 changed files with 14 additions and 0 deletions

View File

@ -4880,6 +4880,20 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
pa.Friction = Friction;
pa.Restitution = Restitution;
if(LocalId == ParentGroup.RootPart.LocalId)
{
// ugly code: physics should also get a byte and not a Vector3 TODO
Vector3 lrRotationAxis = Vector3.One;
if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_X) != 0 )
lrRotationAxis.X = 0f;
if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Y) != 0 )
lrRotationAxis.Y = 0f;
if((RotationAxisLocks & (byte)SceneObjectGroup.axisSelect.STATUS_ROTATE_Z) != 0 )
lrRotationAxis.Z = 0f;
pa.LockAngularMotion(lrRotationAxis);
}
if (VolumeDetectActive) // change if not the default only
pa.SetVolumeDetect(1);