on linking update linked parts physical flags acording to new parent ones ( untested )
parent
09d99cb222
commit
e83a2181d0
|
@ -2499,6 +2499,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (linkPart.PhysActor != null)
|
if (linkPart.PhysActor != null)
|
||||||
linkPart.PhysActor.Building = true;
|
linkPart.PhysActor.Building = true;
|
||||||
|
|
||||||
|
// physics flags from group to be applied to linked parts
|
||||||
|
bool grpusephys = UsesPhysics;
|
||||||
|
bool grptemporary = IsTemporary;
|
||||||
|
bool gprphantom = IsPhantom;
|
||||||
|
|
||||||
Vector3 oldGroupPosition = linkPart.GroupPosition;
|
Vector3 oldGroupPosition = linkPart.GroupPosition;
|
||||||
Quaternion oldRootRotation = linkPart.RotationOffset;
|
Quaternion oldRootRotation = linkPart.RotationOffset;
|
||||||
|
|
||||||
|
@ -2542,7 +2547,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
linkPart.SetParent(this);
|
linkPart.SetParent(this);
|
||||||
linkPart.CreateSelected = true;
|
linkPart.CreateSelected = true;
|
||||||
|
|
||||||
// let physics know
|
// let physics know preserve part volume dtc messy since UpdatePrimFlags doesn't look to parent changes for now
|
||||||
|
linkPart.UpdatePrimFlags(grpusephys, grptemporary, gprphantom, linkPart.VolumeDetectActive, true);
|
||||||
if (linkPart.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
|
if (linkPart.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
|
||||||
{
|
{
|
||||||
linkPart.PhysActor.link(m_rootPart.PhysActor);
|
linkPart.PhysActor.link(m_rootPart.PhysActor);
|
||||||
|
@ -2564,6 +2570,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
LinkNonRootPart(part, oldGroupPosition, oldRootRotation, linkNum++);
|
LinkNonRootPart(part, oldGroupPosition, oldRootRotation, linkNum++);
|
||||||
// let physics know
|
// let physics know
|
||||||
|
part.UpdatePrimFlags(grpusephys, grptemporary, gprphantom, part.VolumeDetectActive, true);
|
||||||
if (part.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
|
if (part.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
|
||||||
{
|
{
|
||||||
part.PhysActor.link(m_rootPart.PhysActor);
|
part.PhysActor.link(m_rootPart.PhysActor);
|
||||||
|
|
Loading…
Reference in New Issue