Add localID to physical object creation functions.
parent
29da57e380
commit
ad84728aba
|
@ -1467,6 +1467,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
newPart.PhysActor
|
||||
= m_scene.PhysicsScene.AddPrimShape(
|
||||
part.LocalId,
|
||||
string.Format("{0}/{1}", part.Name, part.UUID),
|
||||
pbs,
|
||||
part.AbsolutePosition,
|
||||
|
@ -1474,7 +1475,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
part.RotationOffset,
|
||||
part.PhysActor.IsPhysical);
|
||||
|
||||
newPart.PhysActor.LocalID = part.LocalId;
|
||||
newPart.DoPhysicsPropertyUpdate(part.PhysActor.IsPhysical, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1582,6 +1582,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (!isPhantom && !IsAttachment && !(Shape.PathCurve == (byte) Extrusion.Flexible))
|
||||
{
|
||||
PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape(
|
||||
LocalId,
|
||||
string.Format("{0}/{1}", Name, UUID),
|
||||
Shape,
|
||||
AbsolutePosition,
|
||||
|
@ -1594,7 +1595,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
PhysActor.SOPName = this.Name; // save object name and desc into the PhysActor so ODE internals know the joint/body info
|
||||
PhysActor.SOPDescription = this.Description;
|
||||
PhysActor.LocalID = LocalId;
|
||||
DoPhysicsPropertyUpdate(RigidBody, true);
|
||||
PhysActor.SetVolumeDetect(VolumeDetectActive ? 1 : 0);
|
||||
}
|
||||
|
@ -4410,6 +4410,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
// It's not phantom anymore. So make sure the physics engine get's knowledge of it
|
||||
PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape(
|
||||
LocalId,
|
||||
string.Format("{0}/{1}", Name, UUID),
|
||||
Shape,
|
||||
AbsolutePosition,
|
||||
|
@ -4420,7 +4421,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
pa = PhysActor;
|
||||
if (pa != null)
|
||||
{
|
||||
pa.LocalID = LocalId;
|
||||
DoPhysicsPropertyUpdate(UsePhysics, true);
|
||||
if (m_parentGroup != null)
|
||||
{
|
||||
|
|
|
@ -3295,7 +3295,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
Vector3 pVec = AbsolutePosition;
|
||||
|
||||
// Old bug where the height was in centimeters instead of meters
|
||||
m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec,
|
||||
m_physicsActor = scene.AddAvatar(LocalId, Firstname + "." + Lastname, pVec,
|
||||
new Vector3(0f, 0f, m_appearance.AvatarHeight), isFlying);
|
||||
|
||||
scene.AddPhysicsActorTaint(m_physicsActor);
|
||||
|
|
|
@ -142,7 +142,12 @@ namespace OpenSim.Region.Physics.Manager
|
|||
|
||||
public abstract PrimitiveBaseShape Shape { set; }
|
||||
|
||||
public abstract uint LocalID { set; }
|
||||
uint m_baseLocalID;
|
||||
public virtual uint LocalID
|
||||
{
|
||||
set { m_baseLocalID = value; }
|
||||
get { return m_baseLocalID; }
|
||||
}
|
||||
|
||||
public abstract bool Grabbed { set; }
|
||||
|
||||
|
|
|
@ -66,6 +66,13 @@ namespace OpenSim.Region.Physics.Manager
|
|||
|
||||
public abstract PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying);
|
||||
|
||||
public virtual PhysicsActor AddAvatar(uint localID, string avName, Vector3 position, Vector3 size, bool isFlying)
|
||||
{
|
||||
PhysicsActor ret = AddAvatar(avName, position, size, isFlying);
|
||||
if (ret != null) ret.LocalID = localID;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public abstract void RemoveAvatar(PhysicsActor actor);
|
||||
|
||||
public abstract void RemovePrim(PhysicsActor prim);
|
||||
|
@ -75,6 +82,14 @@ namespace OpenSim.Region.Physics.Manager
|
|||
public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
|
||||
Vector3 size, Quaternion rotation, bool isPhysical);
|
||||
|
||||
public virtual PhysicsActor AddPrimShape(uint localID, string primName, PrimitiveBaseShape pbs, Vector3 position,
|
||||
Vector3 size, Quaternion rotation, bool isPhysical)
|
||||
{
|
||||
PhysicsActor ret = AddPrimShape(primName, pbs, position, size, rotation, isPhysical);
|
||||
if (ret != null) ret.LocalID = localID;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public virtual float TimeDilation
|
||||
{
|
||||
get { return 1.0f; }
|
||||
|
|
Loading…
Reference in New Issue