diff options
author | lbsa71 | 2007-07-08 19:28:53 +0000 |
---|---|---|
committer | lbsa71 | 2007-07-08 19:28:53 +0000 |
commit | 252ff78eb3fafe2c8214446973f3c7f2e80297a2 (patch) | |
tree | a42bad2ef08769547004bdc0ce76b72c7e0221fc | |
parent | * By popular demand, all generated build files are now deleted. Somebody shou... (diff) | |
download | opensim-SC-252ff78eb3fafe2c8214446973f3c7f2e80297a2.zip opensim-SC-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.gz opensim-SC-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.bz2 opensim-SC-252ff78eb3fafe2c8214446973f3c7f2e80297a2.tar.xz |
Applied animations patch (#175) submitted by dalien
-rw-r--r-- | OpenSim/Framework/General/Interfaces/IClientAPI.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.API.cs | 15 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 33 |
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 | ||