Add ChangingActorID setting for value changes from physics engine. Works much better distributed

dsg
Robert Adams 2011-05-31 17:48:37 -07:00
parent bfb1068eca
commit b3efab2bbd
1 changed files with 4 additions and 1 deletions

View File

@ -127,7 +127,8 @@ public class BSCharacter : PhysicsActor
if (PhysEngineToSceneConnectorModule.IsPhysEngineActorS) if (PhysEngineToSceneConnectorModule.IsPhysEngineActorS)
{ {
// if the values have changed and it was I who changed them, send an update // if the values have changed and it was I who changed them, send an update
if (this.lastValues.Changed(this) && ChangingActorID == RegionSyncServerModule.ActorID) // if (this.lastValues.Changed(this) && ChangingActorID == RegionSyncServerModule.ActorID)
if (ChangingActorID == RegionSyncServerModule.ActorID)
{ {
// m_log.DebugFormat("{0}: Sending terse update for {1}", LogHeader, LocalID); // m_log.DebugFormat("{0}: Sending terse update for {1}", LogHeader, LocalID);
PhysEngineToSceneConnectorModule.RouteUpdate(this); PhysEngineToSceneConnectorModule.RouteUpdate(this);
@ -193,6 +194,7 @@ public class BSCharacter : PhysicsActor
get { return _force; } get { return _force; }
set { set {
_force = value; _force = value;
base.ChangingActorID = RegionSyncServerModule.ActorID;
// m_log.DebugFormat("{0}: Force = {1}", LogHeader, _force); // m_log.DebugFormat("{0}: Force = {1}", LogHeader, _force);
_scene.TaintedObject(delegate() _scene.TaintedObject(delegate()
{ {
@ -404,6 +406,7 @@ public class BSCharacter : PhysicsActor
} }
if (changed) if (changed)
{ {
base.ChangingActorID = RegionSyncServerModule.ActorID;
this.RequestPhysicsterseUpdate(); this.RequestPhysicsterseUpdate();
} }
} }