Add the PhysActor to the correct SOP when duplicating a physical
prim. Thanks, MisterBluebulletsim
parent
289c8fe1bc
commit
29da57e380
|
@ -1449,18 +1449,23 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
foreach (SceneObjectPart part in partList)
|
||||
{
|
||||
SceneObjectPart newPart;
|
||||
if (part.UUID != m_rootPart.UUID)
|
||||
{
|
||||
SceneObjectPart newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed);
|
||||
newPart = dupe.CopyPart(part, OwnerID, GroupID, userExposed);
|
||||
newPart.LinkNum = part.LinkNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
newPart = dupe.m_rootPart;
|
||||
}
|
||||
|
||||
// Need to duplicate the physics actor as well
|
||||
if (part.PhysActor != null && userExposed)
|
||||
{
|
||||
PrimitiveBaseShape pbs = part.Shape;
|
||||
|
||||
part.PhysActor
|
||||
newPart.PhysActor
|
||||
= m_scene.PhysicsScene.AddPrimShape(
|
||||
string.Format("{0}/{1}", part.Name, part.UUID),
|
||||
pbs,
|
||||
|
@ -1469,8 +1474,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
part.RotationOffset,
|
||||
part.PhysActor.IsPhysical);
|
||||
|
||||
part.PhysActor.LocalID = part.LocalId;
|
||||
part.DoPhysicsPropertyUpdate(part.PhysActor.IsPhysical, true);
|
||||
newPart.PhysActor.LocalID = part.LocalId;
|
||||
newPart.DoPhysicsPropertyUpdate(part.PhysActor.IsPhysical, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue