add some more notifications about changes on physical parameters ( still incomple and there should be a better away )

avinationmerge
UbitUmarov 2012-03-20 16:46:16 +00:00
parent f2d17433bb
commit efd7ff3146
3 changed files with 14 additions and 10 deletions

View File

@ -2633,6 +2633,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
m_log.Error("Unable to send part Physics Proprieties - exception: " + ex.ToString()); m_log.Error("Unable to send part Physics Proprieties - exception: " + ex.ToString());
} }
part.UpdatePhysRequired = false;
} }
} }

View File

@ -1521,7 +1521,11 @@ namespace OpenSim.Region.Framework.Scenes
{ {
SceneObjectPart part = GetSceneObjectPart(localID); SceneObjectPart part = GetSceneObjectPart(localID);
if (part != null) if (part != null)
{
part.UpdateExtraPhysics(PhysData); part.UpdateExtraPhysics(PhysData);
if (part.UpdatePhysRequired)
remoteClient.SendPartPhysicsProprieties(part);
}
} }
} }
} }

View File

@ -1030,6 +1030,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
public UpdateRequired UpdateFlag { get; set; } public UpdateRequired UpdateFlag { get; set; }
public bool UpdatePhysRequired { get; set; }
/// <summary> /// <summary>
/// Used for media on a prim. /// Used for media on a prim.
@ -1410,6 +1411,7 @@ namespace OpenSim.Region.Framework.Scenes
if(ParentGroup != null) if(ParentGroup != null)
ParentGroup.HasGroupChanged = true; ParentGroup.HasGroupChanged = true;
ScheduleFullUpdateIfNone(); ScheduleFullUpdateIfNone();
UpdatePhysRequired = true;
} }
} }
} }
@ -1501,11 +1503,12 @@ namespace OpenSim.Region.Framework.Scenes
m_physicsShapeType = DefaultPhysicsShapeType(); m_physicsShapeType = DefaultPhysicsShapeType();
else else
m_physicsShapeType = value; m_physicsShapeType = value;
ScheduleFullUpdateIfNone();
} }
else else
m_physicsShapeType = DefaultPhysicsShapeType(); m_physicsShapeType = DefaultPhysicsShapeType();
ParentGroup.HasGroupChanged = true;
if(m_physicsShapeType != value)
UpdatePhysRequired = true;
} }
} }
@ -1517,9 +1520,8 @@ namespace OpenSim.Region.Framework.Scenes
if (value >=1 && value <= 22587.0) if (value >=1 && value <= 22587.0)
{ {
m_density = value; m_density = value;
ScheduleFullUpdateIfNone(); UpdatePhysRequired = true;
} }
ParentGroup.HasGroupChanged = true;
} }
} }
@ -1529,8 +1531,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ if( value >= -1 && value <=28.0f) { if( value >= -1 && value <=28.0f)
m_gravitymod = value; m_gravitymod = value;
ScheduleFullUpdateIfNone(); UpdatePhysRequired = true;
ParentGroup.HasGroupChanged = true;
} }
} }
@ -1542,9 +1543,8 @@ namespace OpenSim.Region.Framework.Scenes
if (value >= 0 && value <= 255.0f) if (value >= 0 && value <= 255.0f)
{ {
m_friction = value; m_friction = value;
ScheduleFullUpdateIfNone(); UpdatePhysRequired = true;
} }
ParentGroup.HasGroupChanged = true;
} }
} }
@ -1556,9 +1556,8 @@ namespace OpenSim.Region.Framework.Scenes
if (value >= 0 && value <= 1.0f) if (value >= 0 && value <= 1.0f)
{ {
m_bounce = value; m_bounce = value;
ScheduleFullUpdateIfNone(); UpdatePhysRequired = true;
} }
ParentGroup.HasGroupChanged = true;
} }
} }