Fix physical actor update by passing additional attributes when physics terse update happens
parent
a0a8654c07
commit
83d67391f1
|
@ -342,7 +342,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
{
|
{
|
||||||
UUID uuid = data["uuid"].AsUUID();
|
UUID uuid = data["uuid"].AsUUID();
|
||||||
string actorID = data["actorID"].AsString();
|
string actorID = data["actorID"].AsString();
|
||||||
m_log.DebugFormat("{0}: HandlPhysUpdateAttributes for {1}", LogHeader, uuid);
|
// m_log.DebugFormat("{0}: HandlPhysUpdateAttributes for {1}", LogHeader, uuid);
|
||||||
PhysicsActor pa = FindPhysicsActor(uuid);
|
PhysicsActor pa = FindPhysicsActor(uuid);
|
||||||
if (pa != null)
|
if (pa != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -373,7 +373,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
pa.Kinematic = data["kinematic"].AsBoolean(); // receive??
|
pa.Kinematic = data["kinematic"].AsBoolean(); // receive??
|
||||||
pa.Buoyancy = (float)(data["buoyancy"].AsReal());
|
pa.Buoyancy = (float)(data["buoyancy"].AsReal());
|
||||||
pa.CollidingGround = data["isCollidingGround"].AsBoolean();
|
pa.CollidingGround = data["isCollidingGround"].AsBoolean();
|
||||||
pa.IsColliding = data["isCollidingGround"].AsBoolean();
|
pa.IsColliding = data["isColliding"].AsBoolean();
|
||||||
pa.ChangingActorID = actorID;
|
pa.ChangingActorID = actorID;
|
||||||
|
|
||||||
pa.RequestPhysicsterseUpdate(); // tell the system the values have changed
|
pa.RequestPhysicsterseUpdate(); // tell the system the values have changed
|
||||||
|
@ -431,8 +431,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
data["isPhysical"] = OSD.FromBoolean(pa.IsPhysical);
|
data["isPhysical"] = OSD.FromBoolean(pa.IsPhysical);
|
||||||
data["flying"] = OSD.FromBoolean(pa.Flying);
|
data["flying"] = OSD.FromBoolean(pa.Flying);
|
||||||
data["buoyancy"] = OSD.FromReal(pa.Buoyancy);
|
data["buoyancy"] = OSD.FromReal(pa.Buoyancy);
|
||||||
// data["isColliding"] = OSD.FromBoolean(pa.IsColliding);
|
data["isColliding"] = OSD.FromBoolean(pa.IsColliding);
|
||||||
// data["isCollidingGround"] = OSD.FromBoolean(pa.CollidingGround);
|
data["isCollidingGround"] = OSD.FromBoolean(pa.CollidingGround);
|
||||||
|
|
||||||
RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.PhysUpdateAttributes,
|
RegionSyncMessage rsm = new RegionSyncMessage(RegionSyncMessage.MsgType.PhysUpdateAttributes,
|
||||||
OSDParser.SerializeJsonString(data));
|
OSDParser.SerializeJsonString(data));
|
||||||
|
|
|
@ -2794,7 +2794,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
//m_parentGroup.RootPart.m_groupPosition = newpos;
|
//m_parentGroup.RootPart.m_groupPosition = newpos;
|
||||||
}
|
}
|
||||||
//ScheduleTerseUpdate();
|
//ScheduleTerseUpdate();
|
||||||
ScheduleTerseUpdate(new List<SceneObjectPartSyncProperties>(){SceneObjectPartSyncProperties.Position});
|
ScheduleTerseUpdate(new List<SceneObjectPartSyncProperties>(){
|
||||||
|
SceneObjectPartSyncProperties.Position,
|
||||||
|
SceneObjectPartSyncProperties.Orientation,
|
||||||
|
SceneObjectPartSyncProperties.Velocity,
|
||||||
|
SceneObjectPartSyncProperties.RotationalVelocity
|
||||||
|
});
|
||||||
|
|
||||||
//SendTerseUpdateToAllClients();
|
//SendTerseUpdateToAllClients();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue