Added initial (buggy) support for animations
parent
96a6da15f6
commit
6cdd4ddf08
|
@ -17,7 +17,9 @@ namespace OpenSim.world
|
||||||
public string firstname;
|
public string firstname;
|
||||||
public string lastname;
|
public string lastname;
|
||||||
public SimClient ControllingClient;
|
public SimClient ControllingClient;
|
||||||
private PhysicsActor _physActor;
|
public LLUUID current_anim;
|
||||||
|
public int anim_seq;
|
||||||
|
private PhysicsActor _physActor;
|
||||||
private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
|
private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
|
||||||
private bool updateflag = false;
|
private bool updateflag = false;
|
||||||
private byte movementflag = 0;
|
private byte movementflag = 0;
|
||||||
|
@ -275,7 +277,15 @@ namespace OpenSim.world
|
||||||
Axiom.MathLib.Quaternion q = new Axiom.MathLib.Quaternion(pack.AgentData.BodyRotation.W, pack.AgentData.BodyRotation.X, pack.AgentData.BodyRotation.Y, pack.AgentData.BodyRotation.Z);
|
Axiom.MathLib.Quaternion q = new Axiom.MathLib.Quaternion(pack.AgentData.BodyRotation.W, pack.AgentData.BodyRotation.X, pack.AgentData.BodyRotation.Y, pack.AgentData.BodyRotation.Z);
|
||||||
if (((movementflag & 1) == 0) || (q != this.bodyRot))
|
if (((movementflag & 1) == 0) || (q != this.bodyRot))
|
||||||
{
|
{
|
||||||
//we should add a new force to the list
|
|
||||||
|
if((movementflag &1) == 0)
|
||||||
|
{
|
||||||
|
this.current_anim=AnimsLLUUID["ANIM_AGENT_STAND"];
|
||||||
|
this.anim_seq=1;
|
||||||
|
this.SendAnimPack();
|
||||||
|
}
|
||||||
|
|
||||||
|
//we should add a new force to the list
|
||||||
// but for now we will deal with velocities
|
// but for now we will deal with velocities
|
||||||
NewForce newVelocity = new NewForce();
|
NewForce newVelocity = new NewForce();
|
||||||
Axiom.MathLib.Vector3 v3 = new Axiom.MathLib.Vector3(1, 0, 0);
|
Axiom.MathLib.Vector3 v3 = new Axiom.MathLib.Vector3(1, 0, 0);
|
||||||
|
@ -371,11 +381,31 @@ namespace OpenSim.world
|
||||||
newVelocity.Z = 0;
|
newVelocity.Z = 0;
|
||||||
this.forcesList.Add(newVelocity);
|
this.forcesList.Add(newVelocity);
|
||||||
movementflag = 0;
|
movementflag = 0;
|
||||||
}
|
// We're standing still, so make it show!
|
||||||
|
this.current_anim=AnimsLLUUID["ANIM_AGENT_STAND"];
|
||||||
|
this.anim_seq=1;
|
||||||
|
this.SendAnimPack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//should be moved somewhere else
|
// Sends animation update
|
||||||
|
public void SendAnimPack()
|
||||||
|
{
|
||||||
|
AvatarAnimationPacket ani = new AvatarAnimationPacket();
|
||||||
|
ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1];
|
||||||
|
ani.AnimationSourceList[0] = new AvatarAnimationPacket.AnimationSourceListBlock();
|
||||||
|
ani.AnimationSourceList[0].ObjectID = ControllingClient.AgentID;
|
||||||
|
ani.Sender = new AvatarAnimationPacket.SenderBlock();
|
||||||
|
ani.Sender.ID = ControllingClient.AgentID;
|
||||||
|
ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[1];
|
||||||
|
ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
|
||||||
|
ani.AnimationList[0].AnimID = this.current_anim;
|
||||||
|
ani.AnimationList[0].AnimSequenceID = this.anim_seq;
|
||||||
|
ControllingClient.OutPacket(ani);
|
||||||
|
}
|
||||||
|
|
||||||
|
//should be moved somewhere else
|
||||||
public void SendRegionHandshake(World RegionInfo)
|
public void SendRegionHandshake(World RegionInfo)
|
||||||
{
|
{
|
||||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
|
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
|
||||||
|
|
Loading…
Reference in New Issue