mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
Add the PhysActor to the correct SOP when duplicating a physical
prim. Thanks, MisterBlue
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user