void EquipOffHand()
 {
     if (Gear[17].ID == "0" || (Sheathe && (Gear[17].Sheath == 0 || Gear[17].Sheath == 7)))
     {
         components[4].Initialize();
     }
     else
     {
         int       attachment = Sheathe ? WoWHelper.SheatheAttachment(Gear[17].Sheath, true) : Gear[17].Type == "Shield" ? 0 : 2;
         ModelBone bone       = bones[FindAttachment(attachment).bone];
         string    type       = Gear[17].Type == "Shield" ? @"Shield\" : @"Weapon\";
         position = SetVector3D(position, bone.Position.x, bone.Position.y, bone.Position.z);
         rotation = SetQuaternion(rotation, bone.Rotation.x, bone.Rotation.y, bone.Rotation.z, bone.Rotation.w);
         rotation = Sheathe ? rotation * WoWHelper.SheatheRotation(Gear[17].Sheath, true) : rotation;
         scale    = SetVector3D(scale, bone.Scale.x, bone.Scale.y, bone.Scale.z);
         if (Gear[17].ID != components[4].ID)
         {
             components[4].Initialize(Gear[17].ID, Gear[17].Models.Left.Replace(".mdx", ".xml"), Gear[17].Textures.Left, objectComponentsPath + type, position, rotation, scale);
         }
         else
         {
             components[4].Modify(position, rotation, scale);
         }
     }
 }
 void EquipMainHand()
 {
     if (Gear[16].ID == "0" || (Sheathe && (Gear[16].Sheath == 0 || Gear[16].Sheath == 7)))
     {
         components[3].Initialize();
     }
     else
     {
         int       attachment = Sheathe ? WoWHelper.SheatheAttachment(Gear[16].Sheath, false) : 1;
         ModelBone bone       = bones[FindAttachment(attachment).bone];
         position = SetVector3D(position, bone.Position.x, bone.Position.y, bone.Position.z);
         rotation = SetQuaternion(rotation, bone.Rotation.x, bone.Rotation.y, bone.Rotation.z, bone.Rotation.w);
         rotation = Sheathe ? rotation * WoWHelper.SheatheRotation(Gear[16].Sheath, false) : rotation;
         scale    = SetVector3D(scale, bone.Scale.x, bone.Scale.y, bone.Scale.z);
         if (Gear[16].ID != components[3].ID)
         {
             components[3].Initialize(Gear[16].ID, Gear[16].Models.Left.Replace(".mdx", ".xml"), Gear[16].Textures.Left, objectComponentsPath + @"Weapon\", position, rotation, scale);
         }
         else
         {
             components[3].Modify(position, rotation, scale);
         }
     }
 }