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