diff options
author | UbitUmarov | 2014-10-20 09:14:27 +0100 |
---|---|---|
committer | UbitUmarov | 2014-10-20 09:14:27 +0100 |
commit | afa9b4a002f0cc929d60e1770535eefcdefe3a43 (patch) | |
tree | 8e5f9fd00aa720759c7ba2a5383f681d01349448 /OpenSim/Framework/ChildAgentDataUpdate.cs | |
parent | try to fix propagation of seeds to all relevante regions (diff) | |
download | opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.zip opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.gz opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.bz2 opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.xz |
Assume childreen don't need to know caps seeds
Diffstat (limited to 'OpenSim/Framework/ChildAgentDataUpdate.cs')
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index 0763bbc..a714d86 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -355,6 +355,7 @@ namespace OpenSim.Framework | |||
355 | public UUID ActiveGroupID; | 355 | public UUID ActiveGroupID; |
356 | 356 | ||
357 | public AgentGroupData[] Groups; | 357 | public AgentGroupData[] Groups; |
358 | public Dictionary<ulong, string> ChildrenCapSeeds = null; | ||
358 | public Animation[] Anims; | 359 | public Animation[] Anims; |
359 | public Animation DefaultAnim = null; | 360 | public Animation DefaultAnim = null; |
360 | public Animation AnimState = null; | 361 | public Animation AnimState = null; |
@@ -440,6 +441,19 @@ namespace OpenSim.Framework | |||
440 | args["groups"] = groups; | 441 | args["groups"] = groups; |
441 | } | 442 | } |
442 | 443 | ||
444 | if (ChildrenCapSeeds != null && ChildrenCapSeeds.Count > 0) | ||
445 | { | ||
446 | OSDArray childrenSeeds = new OSDArray(ChildrenCapSeeds.Count); | ||
447 | foreach (KeyValuePair<ulong, string> kvp in ChildrenCapSeeds) | ||
448 | { | ||
449 | OSDMap pair = new OSDMap(); | ||
450 | pair["handle"] = OSD.FromString(kvp.Key.ToString()); | ||
451 | pair["seed"] = OSD.FromString(kvp.Value); | ||
452 | childrenSeeds.Add(pair); | ||
453 | } | ||
454 | args["children_seeds"] = childrenSeeds; | ||
455 | } | ||
456 | |||
443 | if ((Anims != null) && (Anims.Length > 0)) | 457 | if ((Anims != null) && (Anims.Length > 0)) |
444 | { | 458 | { |
445 | OSDArray anims = new OSDArray(Anims.Length); | 459 | OSDArray anims = new OSDArray(Anims.Length); |
@@ -663,6 +677,29 @@ namespace OpenSim.Framework | |||
663 | } | 677 | } |
664 | } | 678 | } |
665 | 679 | ||
680 | if (args.ContainsKey("children_seeds") && (args["children_seeds"] != null) && | ||
681 | (args["children_seeds"].Type == OSDType.Array)) | ||
682 | { | ||
683 | OSDArray childrenSeeds = (OSDArray)(args["children_seeds"]); | ||
684 | ChildrenCapSeeds = new Dictionary<ulong, string>(); | ||
685 | foreach (OSD o in childrenSeeds) | ||
686 | { | ||
687 | if (o.Type == OSDType.Map) | ||
688 | { | ||
689 | ulong handle = 0; | ||
690 | string seed = ""; | ||
691 | OSDMap pair = (OSDMap)o; | ||
692 | if (pair["handle"] != null) | ||
693 | if (!UInt64.TryParse(pair["handle"].AsString(), out handle)) | ||
694 | continue; | ||
695 | if (pair["seed"] != null) | ||
696 | seed = pair["seed"].AsString(); | ||
697 | if (!ChildrenCapSeeds.ContainsKey(handle)) | ||
698 | ChildrenCapSeeds.Add(handle, seed); | ||
699 | } | ||
700 | } | ||
701 | } | ||
702 | |||
666 | if ((args["animations"] != null) && (args["animations"]).Type == OSDType.Array) | 703 | if ((args["animations"] != null) && (args["animations"]).Type == OSDType.Array) |
667 | { | 704 | { |
668 | OSDArray anims = (OSDArray)(args["animations"]); | 705 | OSDArray anims = (OSDArray)(args["animations"]); |