aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorlbsa712007-07-08 19:28:53 +0000
committerlbsa712007-07-08 19:28:53 +0000
commit252ff78eb3fafe2c8214446973f3c7f2e80297a2 (patch)
treea42bad2ef08769547004bdc0ce76b72c7e0221fc /OpenSim
parent* By popular demand, all generated build files are now deleted. Somebody shou... (diff)
downloadopensim-SC_OLD-252ff78eb3fafe2c8214446973f3c7f2e80297a2.zip
opensim-SC_OLD-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.gz
opensim-SC_OLD-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.bz2
opensim-SC_OLD-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.xz
Applied animations patch (#175) submitted by dalien
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/General/Interfaces/IClientAPI.cs1
-rw-r--r--OpenSim/Region/ClientStack/ClientView.API.cs15
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs33
3 files changed, 45 insertions, 4 deletions
diff --git a/OpenSim/Framework/General/Interfaces/IClientAPI.cs b/OpenSim/Framework/General/Interfaces/IClientAPI.cs
index acacabe..c7e0d22 100644
--- a/OpenSim/Framework/General/Interfaces/IClientAPI.cs
+++ b/OpenSim/Framework/General/Interfaces/IClientAPI.cs
@@ -145,6 +145,7 @@ namespace OpenSim.Framework.Interfaces
145 145
146 void OutPacket(Packet newPack); 146 void OutPacket(Packet newPack);
147 void SendWearables(AvatarWearable[] wearables); 147 void SendWearables(AvatarWearable[] wearables);
148 void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId);
148 void SendRegionHandshake(RegionInfo regionInfo); 149 void SendRegionHandshake(RegionInfo regionInfo);
149 void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); 150 void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
150 void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID); 151 void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index cefe856..dfae9e0 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -527,6 +527,21 @@ namespace OpenSim.Region.ClientStack
527 OutPacket(avp); 527 OutPacket(avp);
528 } 528 }
529 529
530 public void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId)
531 {
532 AvatarAnimationPacket ani = new AvatarAnimationPacket();
533 ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1];
534 ani.AnimationSourceList[0] = new AvatarAnimationPacket.AnimationSourceListBlock();
535 ani.AnimationSourceList[0].ObjectID = sourceAgentId;
536 ani.Sender = new AvatarAnimationPacket.SenderBlock();
537 ani.Sender.ID = sourceAgentId;
538 ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[1];
539 ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
540 ani.AnimationList[0].AnimID = animID;
541 ani.AnimationList[0].AnimSequenceID = seq;
542 this.OutPacket(ani);
543 }
544
530 #endregion 545 #endregion
531 546
532 #region Avatar Packet/data sending Methods 547 #region Avatar Packet/data sending Methods
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 14b7b2f..d1e2817 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -122,6 +122,8 @@ namespace OpenSim.Region.Environment.Scenes
122 } 122 }
123 123
124 Wearables = AvatarWearable.DefaultWearables; 124 Wearables = AvatarWearable.DefaultWearables;
125 Animations = new ScenePresence.AvatarAnimations();
126 Animations.LoadAnims();
125 127
126 this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); 128 this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
127 129
@@ -274,9 +276,27 @@ namespace OpenSim.Region.Environment.Scenes
274 { 276 {
275 this.AddNewMovement(agent_control_v3, q); 277 this.AddNewMovement(agent_control_v3, q);
276 } 278 }
277 279 UpdateMovementAnimations(update_movementflag);
278 } 280 }
279 281
282 protected void UpdateMovementAnimations(bool update_movementflag)
283 {
284 if (update_movementflag)
285 {
286 if (movementflag != 0) {
287 if (this._physActor.Flying) {
288 this.SendAnimPack(Animations.AnimsLLUUID["FLY"], 1);
289 } else {
290 this.SendAnimPack(Animations.AnimsLLUUID["WALK"], 1);
291 }
292 } else {
293 this.SendAnimPack(Animations.AnimsLLUUID["STAND"], 1);
294 }
295 }
296
297 }
298
299
280 protected void AddNewMovement(Vector3 vec, Quaternion rotation) 300 protected void AddNewMovement(Vector3 vec, Quaternion rotation)
281 { 301 {
282 NewForce newVelocity = new NewForce(); 302 NewForce newVelocity = new NewForce();
@@ -403,8 +423,13 @@ namespace OpenSim.Region.Environment.Scenes
403 /// <param name="seq"></param> 423 /// <param name="seq"></param>
404 public void SendAnimPack(LLUUID animID, int seq) 424 public void SendAnimPack(LLUUID animID, int seq)
405 { 425 {
406 426 this.current_anim = animID;
407 427 this.anim_seq = anim_seq;
428 List<ScenePresence> avatars = this.m_world.RequestAvatarList();
429 for (int i = 0; i < avatars.Count; i++)
430 {
431 avatars[i].ControllingClient.SendAnimation(animID, seq, this.ControllingClient.AgentId);
432 }
408 } 433 }
409 434
410 /// <summary> 435 /// <summary>
@@ -412,7 +437,7 @@ namespace OpenSim.Region.Environment.Scenes
412 /// </summary> 437 /// </summary>
413 public void SendAnimPack() 438 public void SendAnimPack()
414 { 439 {
415 440 this.SendAnimPack(this.current_anim, this.anim_seq);
416 } 441 }
417 #endregion 442 #endregion
418 443