/// <summary>
 /// Adds a body element to the humanoid-structure build, given it's element-name, and three element-splatmap colors.
 /// </summary>
 /// <returns>
 /// Returns a bool, true if anything was added, false if the body build list was unchanged
 /// </returns>
 /// <param name='human'>
 /// HumanoidStructure
 /// </param>
 /// <param name='name'>
 /// the element-name of the element to add.
 /// </param>
 /// <param name='color1'>
 /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Red splatmap component.
 /// </param>
 /// <param name='color2'>
 /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Green splatmap component
 /// </param>
 /// <param name='color3'>
 /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Blue splatmap component
 /// </param>
 public static bool BodyAdd(HumanoidStructure human, string name, int color1, int color2, int color3)
 {
     // does this named element exist in our dictionaries
     foreach(ElementData ed in ElementsLibrary.Elements.Values)
     {
         if(ed.Name == name)
         {
             // build a new element block and add it to the body
             ElementBlock eb = new ElementBlock(ed, color1, color2, color3);
             human.Body.Add(eb);
             return true;
         }
     }
     return false;
 }
        /// <summary>
        /// Adds a body element to the humanoid-structure build, given it's element-index, and three element-splatmap colors.
        /// </summary>
        /// <returns>
        /// Returns a bool, true if anything was added, false if the body build list was unchanged
        /// </returns>
        /// <param name='human'>
        /// HumanoidStructure
        /// </param>
        /// <param name='index'>
        /// the element-index of the element to add.
        /// </param>
        /// <param name='color1'>
        /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Red splatmap component.
        /// </param>
        /// <param name='color2'>
        /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Green splatmap component
        /// </param>
        /// <param name='color3'>
        /// the index of the elemement-splatmap color to use, see DyeSwatch in the <see cref="UMAElements.GamePalette"/> class. This color replaces the Blue splatmap component
        /// </param>
        public static bool BodyAdd(HumanoidStructure human, int index, int color1, int color2, int color3)
        {
            // does this index exist?
            if(!ElementsLibrary.Elements.ContainsKey(index)) return false;

            // build a new element block and add it to the body
            ElementBlock eb = new ElementBlock(ElementsLibrary.Elements[index], color1, color2, color3);
            human.Body.Add(eb);
            return true;
        }
        /// <summary>
        /// Adds an attachment element to the humanoid-structure build, given it's element-index.
        /// </summary>
        /// <returns>
        /// Returns a bool, true if anything was added, false if the body build list was unchanged
        /// </returns>
        /// <param name='human'>
        /// HumanoidStructure
        /// </param>
        /// <param name='index'>
        /// the element-index of the element to add.
        /// </param>
        public static bool AttachmentsAdd(HumanoidStructure human, int index)
        {
            // does this index exist?
            if(!ElementsLibrary.Elements.ContainsKey(index)) return false;

            // build a new element block and add it to the body
            ElementBlock eb = new ElementBlock(ElementsLibrary.Elements[index]);
            human.Attachments.Add(eb);
            return true;
        }