Fix linked physical daughter prim position update.
parent
cc8246206d
commit
0d1d437bd3
|
@ -513,9 +513,16 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
// If this is a linkset, we don't want the physics engine mucking up our group position here.
|
||||
PhysicsActor actor = PhysActor;
|
||||
if (actor != null && _parentID == 0)
|
||||
if (actor != null)
|
||||
{
|
||||
m_groupPosition = actor.Position;
|
||||
if (_parentID == 0)
|
||||
{
|
||||
m_groupPosition = actor.Position;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_groupPosition = ParentGroup.AbsolutePosition; // KF+Casper Update Child prims too!
|
||||
}
|
||||
}
|
||||
|
||||
if (IsAttachment)
|
||||
|
@ -1743,9 +1750,13 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
Quaternion parentRot = ParentGroup.RootPart.RotationOffset;
|
||||
|
||||
Vector3 axPos = OffsetPosition;
|
||||
|
||||
axPos *= parentRot;
|
||||
Vector3 translationOffsetPosition = axPos;
|
||||
|
||||
int tx = (int)GroupPosition.X;
|
||||
int ty = (int)GroupPosition.Y;
|
||||
int tz = (int)GroupPosition.Z;
|
||||
|
||||
return GroupPosition + translationOffsetPosition;
|
||||
}
|
||||
|
||||
|
|
|
@ -1642,7 +1642,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// Reset sit target.
|
||||
if (part.GetAvatarOnSitTarget() == UUID)
|
||||
part.SetAvatarOnSitTarget(UUID.Zero);
|
||||
|
||||
m_parentPosition = part.GetWorldPosition();
|
||||
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
|
||||
}
|
||||
|
@ -1659,7 +1658,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
AbsolutePosition = wso; //KF: Fix stand up.
|
||||
m_parentPosition = Vector3.Zero;
|
||||
|
||||
m_parentID = 0;
|
||||
part.IsOccupied = false;
|
||||
SendFullUpdateToAllClients();
|
||||
|
|
Loading…
Reference in New Issue