aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/ChildAgentDataUpdate.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/ChildAgentDataUpdate.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs
index 91df64d..538e1b5 100644
--- a/OpenSim/Framework/ChildAgentDataUpdate.cs
+++ b/OpenSim/Framework/ChildAgentDataUpdate.cs
@@ -349,6 +349,8 @@ namespace OpenSim.Framework
349 public List<ISceneObject> AttachmentObjects; 349 public List<ISceneObject> AttachmentObjects;
350 public List<string> AttachmentObjectStates; 350 public List<string> AttachmentObjectStates;
351 351
352 public Dictionary<string, UUID> MovementAnimationOverRides = new Dictionary<string, UUID>();
353
352 public virtual OSDMap Pack() 354 public virtual OSDMap Pack()
353 { 355 {
354// m_log.InfoFormat("[CHILDAGENTDATAUPDATE] Pack data"); 356// m_log.InfoFormat("[CHILDAGENTDATAUPDATE] Pack data");
@@ -417,6 +419,21 @@ namespace OpenSim.Framework
417 args["animation_state"] = AnimState.PackUpdateMessage(); 419 args["animation_state"] = AnimState.PackUpdateMessage();
418 } 420 }
419 421
422 if (MovementAnimationOverRides.Count > 0)
423 {
424 OSDArray AOs = new OSDArray(MovementAnimationOverRides.Count);
425 {
426 foreach (KeyValuePair<string, UUID> kvp in MovementAnimationOverRides)
427 {
428 OSDMap ao = new OSDMap(2);
429 ao["state"] = OSD.FromString(kvp.Key);
430 ao["uuid"] = OSD.FromUUID(kvp.Value);
431 AOs.Add(ao);
432 }
433 }
434 args["movementAO"] = AOs;
435 }
436
420 if (Appearance != null) 437 if (Appearance != null)
421 args["packed_appearance"] = Appearance.Pack(); 438 args["packed_appearance"] = Appearance.Pack();
422 439
@@ -640,6 +657,25 @@ namespace OpenSim.Framework
640 } 657 }
641 } 658 }
642 659
660 MovementAnimationOverRides.Clear();
661
662 if (args["movementAO"] != null && args["movementAO"].Type == OSDType.Array)
663 {
664 OSDArray AOs = (OSDArray)(args["movementAO"]);
665 int count = AOs.Count;
666
667 for (int i = 0; i < count; i++)
668 {
669 OSDMap ao = (OSDMap)AOs[i];
670 if (ao["state"] != null && ao["uuid"] != null)
671 {
672 string state = ao["state"].AsString();
673 UUID id = ao["uuid"].AsUUID();
674 MovementAnimationOverRides[state] = id;
675 }
676 }
677 }
678
643 //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) 679 //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array)
644 //{ 680 //{
645 // OSDArray textures = (OSDArray)(args["agent_textures"]); 681 // OSDArray textures = (OSDArray)(args["agent_textures"]);