Beispiel #1
0
    public void SetupHairCap(
        SkinSetCollection skin,
        float hairNum,
        float meshNum,
        MaterialPropertyBlock block)
    {
        int     index = skin.GetIndex(meshNum);
        SkinSet skin1 = skin.Skins[index];

        if (!Object.op_Inequality((Object)skin1, (Object)null))
        {
            return;
        }
        for (int typeIndex = 0; typeIndex < 5; ++typeIndex)
        {
            if ((this.hairCapMask & (HairCapMask)(1 << typeIndex)) != (HairCapMask)0)
            {
                float typeNum;
                float dyeNum;
                PlayerModelHair.GetRandomVariation(hairNum, typeIndex, index, out typeNum, out dyeNum);
                HairType hairType = (HairType)typeIndex;
                HairSetCollection.HairSetEntry hairSetEntry = skin1.HairCollection.Get(hairType, typeNum);
                if (Object.op_Inequality((Object)hairSetEntry.HairSet, (Object)null))
                {
                    HairDyeCollection hairDyeCollection = hairSetEntry.HairDyeCollection;
                    if (Object.op_Inequality((Object)hairDyeCollection, (Object)null))
                    {
                        hairDyeCollection.Get(dyeNum)?.ApplyCap(hairDyeCollection, hairType, block);
                    }
                }
            }
        }
    }
    public void SetupHairCap(SkinSetCollection skin, float hairNum, float meshNum, MaterialPropertyBlock block)
    {
        float   single;
        float   single1;
        int     index = skin.GetIndex(meshNum);
        SkinSet skins = skin.Skins[index];

        if (skins != null)
        {
            for (int i = 0; i < 5; i++)
            {
                if (((int)this.hairCapMask & 1 << (i & 31)) != 0)
                {
                    PlayerModelHair.GetRandomVariation(hairNum, i, index, out single, out single1);
                    HairType hairType = (HairType)i;
                    HairSetCollection.HairSetEntry hairSetEntry = skins.HairCollection.Get(hairType, single);
                    if (hairSetEntry.HairSet != null)
                    {
                        HairDyeCollection hairDyeCollection = hairSetEntry.HairDyeCollection;
                        if (hairDyeCollection != null)
                        {
                            HairDye hairDye = hairDyeCollection.Get(single1);
                            if (hairDye != null)
                            {
                                hairDye.ApplyCap(hairDyeCollection, hairType, block);
                            }
                        }
                    }
                }
            }
        }
    }
Beispiel #3
0
 public void OpenMenu(SkinSet source)
 {
     if (Permission.CanDo(Ability.ChangeSkin))
     {
         _source = source;
         OpenMenu();
     }
 }
    public void Setup(SkinSetCollection skin, float materialNum, float meshNum)
    {
        SkinSet skinSet = skin.Get(meshNum);

        if (Object.op_Equality((Object)skinSet, (Object)null))
        {
            Debug.LogError((object)"Skin.Get returned a NULL skin");
        }
        skinSet.Process(((Component)this).get_gameObject(), materialNum);
    }
    public void Setup(SkinSetCollection skin, float materialNum, float meshNum)
    {
        SkinSet skinSet = skin.Get(meshNum);

        if (skinSet == null)
        {
            Debug.LogError("Skin.Get returned a NULL skin");
        }
        skinSet.Process(base.gameObject, materialNum);
    }
Beispiel #6
0
        public SkinSubmenu(Func <uint, Skin, Task> onSelect) : base("PocceMod", "select skin")
        {
            OnItemSelect += async(menu, item, index) =>
            {
                var  model = item.Text;
                uint hash;
                if (model.StartsWith("0x"))
                {
                    hash = uint.Parse(model.Substring(2), System.Globalization.NumberStyles.HexNumber);
                }
                else
                {
                    hash = (uint)API.GetHashKey(model);
                }

                await onSelect(hash, null);

                _lastSkinName = model;
                _lastSkin     = null;
            };

            OnListItemSelect += async(menu, listItem, listIndex, itemIndex) =>
            {
                var skins = listItem.ItemData as List <Skin>;
                if (skins != null && skins.Count > listIndex)
                {
                    var skin = skins[listIndex];
                    await onSelect(skin.Model, skin);

                    _lastSkinName = skin.Name;
                    _lastSkin     = skin;
                }
            };

            OnMenuOpen += (menu) =>
            {
                if (_source == null)
                {
                    return;
                }

                foreach (var item in _source.Skins)
                {
                    AddSkinVariations(item);
                }

                JumpToSkin(_lastSkinName, _lastSkin);
            };

            OnMenuClose += (menu) =>
            {
                ClearMenuItems();
                _source = null;
            };
        }
Beispiel #7
0
        public SkinMenu() : base("PocceMod", "select skin")
        {
            foreach (var pocce in Config.PocceList)
            {
                _allSkins.Add(Skin.ModelToName(pocce));
            }

            OnItemSelect += async(_menu, _item, _index) =>
            {
                await ChangeSkin(_item.Text);
            };

            OnListItemSelect += async(_menu, _listItem, _listIndex, _itemIndex) =>
            {
                await ChangeSkin(_listItem, _listIndex);
            };

            OnMenuOpen += (_menu) =>
            {
                if (_source == null)
                {
                    return;
                }

                foreach (var items in _source.Elements)
                {
                    if (items.Value.Count > 0)
                    {
                        var list = new List <string>();
                        for (int i = 0; i < items.Value.Count; ++i)
                        {
                            list.Add("#" + i);
                        }

                        var menuItem = new MenuListItem(items.Key, list, 0);
                        menuItem.ItemData = items.Value;
                        AddMenuItem(menuItem);
                    }
                    else
                    {
                        var menuItem = new MenuItem(items.Key);
                        AddMenuItem(menuItem);
                    }
                }
            };

            OnMenuClose += (_menu) =>
            {
                ClearMenuItems();
                _source = null;
            };
        }
Beispiel #8
0
    public void RandomizeAppearance()
    {
        LookDatabase db = GameObject.FindObjectOfType <LookDatabase>();

        if (db != null)
        {
            SkinSet skin = db.GetRandomSkinSet();
            Head = skin.HeadRear;
            Arm  = skin.Arm;

            Hair = db.GetRandomHair();
        }

        ApplyLook();
    }
    public void Setup(SkinSetCollection skin, float hairNum, float meshNum, MaterialPropertyBlock block)
    {
        float   single;
        float   single1;
        int     index = skin.GetIndex(meshNum);
        SkinSet skins = skin.Skins[index];

        if (skins == null)
        {
            Debug.LogError("Skin.Get returned a NULL skin");
            return;
        }
        int num = (int)this.type;

        PlayerModelHair.GetRandomVariation(hairNum, num, index, out single, out single1);
        this.Setup(this.type, skins.HairCollection, index, single, single1, block);
    }
    public void Setup(
        SkinSetCollection skin,
        float hairNum,
        float meshNum,
        MaterialPropertyBlock block)
    {
        int     index = skin.GetIndex(meshNum);
        SkinSet skin1 = skin.Skins[index];

        if (Object.op_Equality((Object)skin1, (Object)null))
        {
            Debug.LogError((object)"Skin.Get returned a NULL skin");
        }
        else
        {
            int   type = (int)this.type;
            float typeNum;
            float dyeNum;
            PlayerModelHair.GetRandomVariation(hairNum, type, index, out typeNum, out dyeNum);
            this.Setup(this.type, skin1.HairCollection, index, typeNum, dyeNum, block);
        }
    }
Beispiel #11
0
 protected void OpenMenu(SkinSet source)
 {
     _source = source;
     OpenMenu();
 }