Make llSetKeyframedMotion prims waut at the borders of down sims and try again

periodically.
avinationmerge
Melanie 2012-02-26 21:16:24 +01:00
parent fca8c82232
commit e5e5b94cbe
2 changed files with 18 additions and 0 deletions

View File

@ -1746,6 +1746,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (grp.RootPart.PhysActor != null) if (grp.RootPart.PhysActor != null)
{ {
grp.RootPart.PhysActor.CrossingFailure(); grp.RootPart.PhysActor.CrossingFailure();
if (grp.RootPart.KeyframeMotion != null)
{
grp.RootPart.Velocity = Vector3.Zero;
grp.RootPart.KeyframeMotion.CrossingFailure();
grp.SendGroupRootTerseUpdate();
}
} }
} }

View File

@ -406,5 +406,17 @@ namespace OpenSim.Region.Framework.Scenes
m_group = tmp; m_group = tmp;
return ms.ToArray(); return ms.ToArray();
} }
public void CrossingFailure()
{
// The serialization has stopped the timer, so let's wait a moment
// then retry the crossing. We'll get back here if it fails.
Util.FireAndForget(delegate (object x)
{
Thread.Sleep(60000);
if (m_running)
m_timer.Start();
});
}
} }
} }