Add ChangingActorID setting for value changes from physics engine. Works much better distributed
parent
bfb1068eca
commit
b3efab2bbd
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue