/// <summary> /// Deserializes object from OSD /// </summary> /// <param name="osd">An <see cref="OSDMap"/> containing the data</param> public override void Deserialize(OSDMap osd) { base.Deserialize(osd); OSDArray attachments = (OSDArray)((OSDMap)osd)["attachments"]; Attachments = new Dictionary<AttachmentPoint, ObjectResourcesDetail[]>(); for (int i = 0; i < attachments.Count; i++) { OSDMap attachment = (OSDMap)attachments[i]; AttachmentPoint pt = Utils.StringToAttachmentPoint(attachment["location"].AsString()); OSDArray objectsOSD = (OSDArray)attachment["objects"]; ObjectResourcesDetail[] objects = new ObjectResourcesDetail[objectsOSD.Count]; for (int j = 0; j < objects.Length; j++) { objects[j] = ObjectResourcesDetail.FromOSD(objectsOSD[j]); } Attachments.Add(pt, objects); } }
/// <summary> /// Makes an instance based on deserialized data /// </summary> /// <param name="osd"><see cref="OSD"/> serialized data</param> /// <returns>Instance containg deserialized data</returns> public static ObjectResourcesDetail FromOSD(OSD osd) { ObjectResourcesDetail res = new ObjectResourcesDetail(); res.Deserialize((OSDMap)osd); return res; }