Пример #1
0
        public void ChangeEyesPtn(ChaControl chara, int ptn, bool blend = true)
        {
            chara.fileStatus.eyesPtn = ptn;
            Dictionary <int, ListInfoBase> categoryInfo = chara.lstCtrl.GetCategoryInfo((ChaListDefine.CategoryNo) 2);
            ListInfoBase listInfoBase;

            if (!categoryInfo.TryGetValue(ptn, out listInfoBase))
            {
                ptn = (chara.fileStatus.eyesPtn = 0);
                categoryInfo.TryGetValue(ptn, out listInfoBase);
            }
            if (listInfoBase == null)
            {
                return;
            }
            GameObject referenceInfo = chara.GetReferenceInfo((ChaReference.RefObjKey) 120);

            if (referenceInfo)
            {
                referenceInfo.SetActive(1 == listInfoBase.GetInfoInt((ChaListDefine.KeyType) 11));
            }
            GameObject referenceInfo2 = chara.GetReferenceInfo((ChaReference.RefObjKey) 121);

            if (referenceInfo2)
            {
                referenceInfo2.SetActive(listInfoBase.GetInfoInt((ChaListDefine.KeyType) 14) != 0);
            }
            GameObject[] array = new GameObject[]
            {
                chara.GetReferenceInfo((ChaReference.RefObjKey) 122),
                chara.GetReferenceInfo((ChaReference.RefObjKey) 123),
                chara.GetReferenceInfo((ChaReference.RefObjKey) 124)
            };
            int infoInt = listInfoBase.GetInfoInt((ChaListDefine.KeyType) 19);

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i])
                {
                    array[i].SetActive(i + 1 == infoInt);
                }
            }
            if (chara.rendEye != null && chara.rendEye.Length == 2)
            {
                Texture texture = null;
                string  info    = listInfoBase.GetInfo((ChaListDefine.KeyType) 10);
                string  text    = listInfoBase.GetInfo((ChaListDefine.KeyType) 9);
                float   num     = 0f;
                if ("0" != info && "0" != text)
                {
                    if (!chara.hiPoly)
                    {
                        text += "_low";
                    }
                    texture = this.loadTexture(info, text, string.Empty);
                    num     = 1f;
                }
                foreach (Renderer renderer in chara.rendEye)
                {
                    if (!(null == renderer))
                    {
                        renderer.material.SetTexture(ChaShader._expression, texture);
                        renderer.material.SetFloat(ChaShader._exppower, num);
                    }
                }
            }
            if (array != null && array.Length != 0 && infoInt != 0)
            {
                Texture tex   = null;
                string  info2 = listInfoBase.GetInfo((ChaListDefine.KeyType) 36);
                string  text2 = listInfoBase.GetInfo((ChaListDefine.KeyType) 33);
                if ("0" != info2 && "0" != text2)
                {
                    if (!chara.hiPoly)
                    {
                        text2 += "_low";
                    }
                    tex = this.loadTexture(info2, text2, string.Empty);
                }
                string[] array2 = listInfoBase.GetInfo((ChaListDefine.KeyType) 63).Split(new char[]
                {
                    '/'
                });
                Vector4 zero = Vector4.zero;
                if (3 <= array2.Length)
                {
                    float.TryParse(array2[0], out zero.x);
                    float.TryParse(array2[1], out zero.y);
                    float.TryParse(array2[2], out zero.z);
                }
                float infoFloat  = listInfoBase.GetInfoFloat((ChaListDefine.KeyType) 59);
                float infoFloat2 = listInfoBase.GetInfoFloat((ChaListDefine.KeyType) 60);
                float infoFloat3 = listInfoBase.GetInfoFloat((ChaListDefine.KeyType) 2);
                float infoFloat4 = listInfoBase.GetInfoFloat((ChaListDefine.KeyType) 65);
                this.ChangeGagEyesMaterial(chara, infoInt - 1, tex, zero, infoFloat, infoFloat2, infoFloat3, infoFloat4);
            }
            chara.SetForegroundEyesAndEyebrow();
            chara.ChangeSettingEyeShadowColor();
            chara.eyesCtrl.ChangePtn(listInfoBase.GetInfoInt((ChaListDefine.KeyType) 21), blend);
        }