diff options
Diffstat (limited to 'OpenSim/Framework/ChildAgentDataUpdate.cs')
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index 6d048f4..e718aa6 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -229,12 +229,14 @@ namespace OpenSim.Framework | |||
229 | 229 | ||
230 | public class ControllerData | 230 | public class ControllerData |
231 | { | 231 | { |
232 | public UUID ObjectID; | ||
232 | public UUID ItemID; | 233 | public UUID ItemID; |
233 | public uint IgnoreControls; | 234 | public uint IgnoreControls; |
234 | public uint EventControls; | 235 | public uint EventControls; |
235 | 236 | ||
236 | public ControllerData(UUID item, uint ignore, uint ev) | 237 | public ControllerData(UUID obj, UUID item, uint ignore, uint ev) |
237 | { | 238 | { |
239 | ObjectID = obj; | ||
238 | ItemID = item; | 240 | ItemID = item; |
239 | IgnoreControls = ignore; | 241 | IgnoreControls = ignore; |
240 | EventControls = ev; | 242 | EventControls = ev; |
@@ -248,6 +250,7 @@ namespace OpenSim.Framework | |||
248 | public OSDMap PackUpdateMessage() | 250 | public OSDMap PackUpdateMessage() |
249 | { | 251 | { |
250 | OSDMap controldata = new OSDMap(); | 252 | OSDMap controldata = new OSDMap(); |
253 | controldata["object"] = OSD.FromUUID(ObjectID); | ||
251 | controldata["item"] = OSD.FromUUID(ItemID); | 254 | controldata["item"] = OSD.FromUUID(ItemID); |
252 | controldata["ignore"] = OSD.FromInteger(IgnoreControls); | 255 | controldata["ignore"] = OSD.FromInteger(IgnoreControls); |
253 | controldata["event"] = OSD.FromInteger(EventControls); | 256 | controldata["event"] = OSD.FromInteger(EventControls); |
@@ -258,6 +261,8 @@ namespace OpenSim.Framework | |||
258 | 261 | ||
259 | public void UnpackUpdateMessage(OSDMap args) | 262 | public void UnpackUpdateMessage(OSDMap args) |
260 | { | 263 | { |
264 | if (args["object"] != null) | ||
265 | ObjectID = args["object"].AsUUID(); | ||
261 | if (args["item"] != null) | 266 | if (args["item"] != null) |
262 | ItemID = args["item"].AsUUID(); | 267 | ItemID = args["item"].AsUUID(); |
263 | if (args["ignore"] != null) | 268 | if (args["ignore"] != null) |
@@ -306,8 +311,11 @@ namespace OpenSim.Framework | |||
306 | 311 | ||
307 | public AgentGroupData[] Groups; | 312 | public AgentGroupData[] Groups; |
308 | public Animation[] Anims; | 313 | public Animation[] Anims; |
314 | public Animation DefaultAnim = null; | ||
309 | 315 | ||
310 | public UUID GranterID; | 316 | public UUID GranterID; |
317 | public UUID ParentPart; | ||
318 | public Vector3 SitOffset; | ||
311 | 319 | ||
312 | // Appearance | 320 | // Appearance |
313 | public AvatarAppearance Appearance; | 321 | public AvatarAppearance Appearance; |
@@ -390,6 +398,11 @@ namespace OpenSim.Framework | |||
390 | args["animations"] = anims; | 398 | args["animations"] = anims; |
391 | } | 399 | } |
392 | 400 | ||
401 | if (DefaultAnim != null) | ||
402 | { | ||
403 | args["default_animation"] = DefaultAnim.PackUpdateMessage(); | ||
404 | } | ||
405 | |||
393 | if (Appearance != null) | 406 | if (Appearance != null) |
394 | args["packed_appearance"] = Appearance.Pack(); | 407 | args["packed_appearance"] = Appearance.Pack(); |
395 | 408 | ||
@@ -468,6 +481,10 @@ namespace OpenSim.Framework | |||
468 | } | 481 | } |
469 | args["attach_objects"] = attObjs; | 482 | args["attach_objects"] = attObjs; |
470 | } | 483 | } |
484 | |||
485 | args["parent_part"] = OSD.FromUUID(ParentPart); | ||
486 | args["sit_offset"] = OSD.FromString(SitOffset.ToString()); | ||
487 | |||
471 | return args; | 488 | return args; |
472 | } | 489 | } |
473 | 490 | ||
@@ -583,6 +600,18 @@ namespace OpenSim.Framework | |||
583 | } | 600 | } |
584 | } | 601 | } |
585 | 602 | ||
603 | if (args["default_animation"] != null) | ||
604 | { | ||
605 | try | ||
606 | { | ||
607 | DefaultAnim = new Animation((OSDMap)args["default_animation"]); | ||
608 | } | ||
609 | catch | ||
610 | { | ||
611 | DefaultAnim = null; | ||
612 | } | ||
613 | } | ||
614 | |||
586 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) | 615 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) |
587 | //{ | 616 | //{ |
588 | // OSDArray textures = (OSDArray)(args["agent_textures"]); | 617 | // OSDArray textures = (OSDArray)(args["agent_textures"]); |
@@ -675,6 +704,11 @@ namespace OpenSim.Framework | |||
675 | } | 704 | } |
676 | } | 705 | } |
677 | } | 706 | } |
707 | |||
708 | if (args["parent_part"] != null) | ||
709 | ParentPart = args["parent_part"].AsUUID(); | ||
710 | if (args["sit_offset"] != null) | ||
711 | Vector3.TryParse(args["sit_offset"].AsString(), out SitOffset); | ||
678 | } | 712 | } |
679 | 713 | ||
680 | public AgentData() | 714 | public AgentData() |