internal void CopyToSkeleton(Skeleton skeleton, GameObject parent, Item item)
 {
     foreach (SkeletonSkin skeletonSkin in this.SkeletonSkins)
     {
         GameObject gameObject1 = new GameObject();
         gameObject1.get_transform().set_parent(parent.get_transform());
         GameObject gameObject2 = gameObject1;
         Skeleton   skeleton1   = skeleton;
         skeletonSkin.DuplicateAndRetarget(gameObject2, skeleton1).set_updateWhenOffscreen(true);
         if (item != null && item.skin > 0UL)
         {
             ItemSkinDirectory.Skin skin = ((IEnumerable <ItemSkinDirectory.Skin>)item.info.skins).FirstOrDefault <ItemSkinDirectory.Skin>((Func <ItemSkinDirectory.Skin, bool>)(x => (long)x.id == (long)item.skin));
             if (skin.id == 0 && item.skin > 0UL)
             {
                 WorkshopSkin.Apply(gameObject1, item.skin, (Action)null);
                 break;
             }
             if ((long)skin.id != (long)item.skin)
             {
                 break;
             }
             ItemSkin invItem = skin.invItem as ItemSkin;
             if (Object.op_Equality((Object)invItem, (Object)null))
             {
                 break;
             }
             invItem.ApplySkin(gameObject1);
         }
     }
 }
    internal void CopyToSkeleton(Skeleton skeleton, GameObject parent, Item item)
    {
        Func <ItemSkinDirectory.Skin, bool> func = null;

        SkeletonSkin[] skeletonSkins = this.SkeletonSkins;
        for (int i = 0; i < (int)skeletonSkins.Length; i++)
        {
            SkeletonSkin skeletonSkin = skeletonSkins[i];
            GameObject   gameObject   = new GameObject();
            gameObject.transform.parent = parent.transform;
            skeletonSkin.DuplicateAndRetarget(gameObject, skeleton).updateWhenOffscreen = true;
            if (item != null && item.skin > (long)0)
            {
                ItemSkinDirectory.Skin[]            skinArray = item.info.skins;
                Func <ItemSkinDirectory.Skin, bool> func1     = func;
                if (func1 == null)
                {
                    Func <ItemSkinDirectory.Skin, bool> func2 = (ItemSkinDirectory.Skin x) => (long)x.id == item.skin;
                    Func <ItemSkinDirectory.Skin, bool> func3 = func2;
                    func  = func2;
                    func1 = func3;
                }
                ItemSkinDirectory.Skin skin = ((IEnumerable <ItemSkinDirectory.Skin>)skinArray).FirstOrDefault <ItemSkinDirectory.Skin>(func1);
                if (skin.id == 0 && item.skin > (long)0)
                {
                    Rust.Workshop.WorkshopSkin.Apply(gameObject, item.skin, null);
                    return;
                }
                if ((long)skin.id != item.skin)
                {
                    return;
                }
                ItemSkin itemSkin = skin.invItem as ItemSkin;
                if (itemSkin == null)
                {
                    return;
                }
                itemSkin.ApplySkin(gameObject);
            }
        }
    }