Adds support for preserving animations on region crossings and TPs.

Known issue: after TP, the self client doesn't see the animations going, but others can see them. So there's a bug there (TPs only, crossings seem to be all fine).
Untested: did not test animation overriders; only tested playing animations from the viewer.
This commit is contained in:
diva
2009-02-18 01:49:18 +00:00
parent c381bee515
commit 3f25128e77
8 changed files with 698 additions and 45 deletions

View File

@@ -54,36 +54,37 @@ namespace OpenSim.Framework
{
}
public ChildAgentDataUpdate(AgentData agent)
{
ActiveGroupID = agent.ActiveGroupID.Guid;
AgentID = agent.AgentID.Guid;
alwaysrun = agent.AlwaysRun;
AVHeight = agent.Size.Z;
cameraPosition = new sLLVector3(agent.Center);
drawdistance = agent.Far;
godlevel = (float)agent.GodLevel;
if (agent.Groups.Length > 0)
GroupAccess = (uint)agent.Groups[0].GroupPowers;
Position = new sLLVector3(agent.Position);
regionHandle = agent.RegionHandle;
throttles = agent.Throttles;
Velocity = new sLLVector3(agent.Velocity);
}
//public ChildAgentDataUpdate(AgentData agent)
//{
// ActiveGroupID = agent.ActiveGroupID.Guid;
// AgentID = agent.AgentID.Guid;
// alwaysrun = agent.AlwaysRun;
// AVHeight = agent.Size.Z;
// cameraPosition = new sLLVector3(agent.Center);
// drawdistance = agent.Far;
// godlevel = (float)agent.GodLevel;
// if (agent.Groups.Length > 0)
// GroupAccess = (uint)agent.Groups[0].GroupPowers;
// Position = new sLLVector3(agent.Position);
// regionHandle = agent.RegionHandle;
// throttles = agent.Throttles;
// Velocity = new sLLVector3(agent.Velocity);
//}
public ChildAgentDataUpdate(AgentPosition agent)
{
AgentID = agent.AgentID.Guid;
AVHeight = agent.Size.Z;
cameraPosition = new sLLVector3(agent.Center);
drawdistance = agent.Far;
Position = new sLLVector3(agent.Position);
regionHandle = agent.RegionHandle;
throttles = agent.Throttles;
Velocity = new sLLVector3(agent.Velocity);
}
//public ChildAgentDataUpdate(AgentPosition agent)
//{
// AgentID = agent.AgentID.Guid;
// AVHeight = agent.Size.Z;
// cameraPosition = new sLLVector3(agent.Center);
// drawdistance = agent.Far;
// Position = new sLLVector3(agent.Position);
// regionHandle = agent.RegionHandle;
// throttles = agent.Throttles;
// Velocity = new sLLVector3(agent.Velocity);
//}
}
/*
public interface IAgentData
{
UUID AgentID { get; set; }
@@ -581,5 +582,6 @@ namespace OpenSim.Framework
System.Console.WriteLine("Position: " + Position);
}
}
*/
}