Fixes the nudge movements!
parent
c42876df67
commit
797ca8d0e7
|
@ -316,16 +316,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
|||
public void UpdateMovementAnimations()
|
||||
{
|
||||
m_movementAnimation = GetMovementAnimation();
|
||||
|
||||
if (m_movementAnimation == "PREJUMP" && !m_scenePresence.Scene.m_usePreJump)
|
||||
{
|
||||
// This was the previous behavior before PREJUMP
|
||||
TrySetMovementAnimation("JUMP");
|
||||
}
|
||||
else
|
||||
{
|
||||
TrySetMovementAnimation(m_movementAnimation);
|
||||
}
|
||||
TrySetMovementAnimation(m_movementAnimation);
|
||||
}
|
||||
|
||||
public UUID[] GetAnimationArray()
|
||||
|
|
|
@ -218,20 +218,28 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
private double GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity)
|
||||
{
|
||||
// If this is an update for our own avatar give it the highest priority
|
||||
if (client.AgentId == entity.UUID)
|
||||
return 0.0;
|
||||
if (entity == null)
|
||||
return double.NaN;
|
||||
|
||||
// Use group position for child prims
|
||||
Vector3 entityPos = entity.AbsolutePosition;
|
||||
if (entity is SceneObjectPart)
|
||||
{
|
||||
SceneObjectGroup group = (entity as SceneObjectPart).ParentGroup;
|
||||
if (group != null)
|
||||
entityPos = group.AbsolutePosition;
|
||||
else
|
||||
entityPos = entity.AbsolutePosition;
|
||||
}
|
||||
else
|
||||
entityPos = entity.AbsolutePosition;
|
||||
|
||||
ScenePresence presence = m_scene.GetScenePresence(client.AgentId);
|
||||
if (presence != null)
|
||||
{
|
||||
// If this is an update for our own avatar give it the highest priority
|
||||
if (presence == entity)
|
||||
return 0.0;
|
||||
|
||||
// Use group position for child prims
|
||||
Vector3 entityPos = entity.AbsolutePosition;
|
||||
if (entity is SceneObjectPart)
|
||||
entityPos = m_scene.GetGroupByPrim(entity.LocalId).AbsolutePosition;
|
||||
else
|
||||
entityPos = entity.AbsolutePosition;
|
||||
|
||||
if (!presence.IsChildAgent)
|
||||
{
|
||||
if (entity is ScenePresence)
|
||||
|
|
|
@ -2225,33 +2225,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
// WHAT???
|
||||
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent, making root agent!");
|
||||
|
||||
// we have to reset the user's child agent connections.
|
||||
// Likely, here they've lost the eventqueue for other regions so border
|
||||
// crossings will fail at this point unless we reset them.
|
||||
|
||||
List<ulong> regions = new List<ulong>(KnownChildRegionHandles);
|
||||
regions.Remove(m_scene.RegionInfo.RegionHandle);
|
||||
|
||||
MakeRootAgent(new Vector3(127f, 127f, 127f), true);
|
||||
|
||||
// Async command
|
||||
if (m_scene.SceneGridService != null)
|
||||
{
|
||||
m_scene.SceneGridService.SendCloseChildAgentConnections(UUID, regions);
|
||||
|
||||
// Give the above command some time to try and close the connections.
|
||||
// this is really an emergency.. so sleep, or we'll get all discombobulated.
|
||||
System.Threading.Thread.Sleep(500);
|
||||
}
|
||||
|
||||
if (m_scene.SceneGridService != null)
|
||||
{
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
m_agentTransfer.EnableChildAgents(this);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue