コード例 #1
0
    void setCPAListeners(UndoInfo ui)
    {
        cpa.clearUpdateColor();

        if (ui.set != null)
        {
            if (ui.set.gameObject.name == "bg")
            {
                if (ui.set.sprite != null && ui.set.sprite.name[2] != 'p')
                {
                    cpa.UpdateColorAction += () => { ui.set.color = new Color(1, 1, 1, 1 - cpa.B); };
                }
                cpa.UpdateColorAction += () => { Camera.main.backgroundColor = cpa.Color; };
            }
            else if (ui.set.gameObject.name == "head")
            {
                cpa.UpdateColorAction += () =>
                {
                    changeSkin(new HSBColor(cpa.H, cpa.S, cpa.B, 1));
                };
            }
            else if (ui.set.gameObject.name == "wf")
            {
                WaterfallScript Waterfall = ui.set.GetComponent <WaterfallScript>();
                cpa.UpdateColorAction += () =>
                {
                    Waterfall.LightColor = cpa.Color;
                };
            }

            else
            {
                cpa.UpdateColorAction += () => { ui.set.color = cpa.Color; };


                if (ui.set2 != null)
                {
                    cpa.UpdateColorAction += () => { ui.set2.color = cpa.Color; };
                }

                if (ui.set.sprite != null && ui.set.sprite.name == "hart")
                {
                    setUpParticles(xtra[19], 1);
                }

                if (ui.set.gameObject.name == "bangs")
                {
                    Image shine = ui.set.transform.GetChild(0).GetComponent <Image>();
                    cpa.UpdateColorAction += () =>
                    {
                        shine.color = new Color(shine.color.r, shine.color.g, shine.color.b,
                                                Mathf.Lerp(1, 0.35f, cpa.B));
                        ;
                    };
                }
            }
        }
        else if (ui.before != null && (ui.before.name.StartsWith("pa") || ui.before.name.StartsWith("pA")))
        {
            setUpParticles(ui.before, 0);
        }
    }
コード例 #2
0
    public UndoInfo faceSet(Sprite newThang, itemType it)
    {
        //key is the first 2 chars. if 2nd, first 2 chars+"2"
        if (newThang != null)
        {
            Debug.Log("set face with " + newThang.name + " at " + it);
        }
        UndoInfo hm;

        hm.set      = null;
        hm.set2     = null;
        hm.before   = null;
        hm.beforeC  = Color.white;
        hm.beforeC2 = Color.white;
        string key = "";

        if (newThang != null && it != itemType.BMlm)
        {
            key = newThang.name.Substring(0, 2);
        }

        switch (it)
        {
        case itemType.iris:
            hm.set    = leftE[1];
            hm.set2   = rightE[1];
            hm.before = hm.set.sprite;

            break;

        case itemType.w_hites:
            hm.set    = leftE[0];
            hm.set2   = rightE[0];
            hm.before = hm.set.sprite;
            break;

        case itemType.eyelid:
            hm.set  = skin[5];
            hm.set2 = skin[7];
            break;


        case itemType.se:
            if (!XtraStuff.ContainsKey(key))
            {
                hm.set = newImgAt(key, new Vector2(-3f, 7.783465f),
                                  leftE[2], null, 1);
                hm.set2 = newImgAt(key, new Vector2(-3f, 7.783465f),
                                   rightE[2], null, 1);
            }
            else
            {
                hm.set    = XtraStuff[key];
                hm.set2   = XtraStuff[key + "2"];
                hm.before = hm.set.sprite;
            }
            break;

        case itemType.Se:
            Debug.Log("add Se");
            if (!XtraStuff.ContainsKey(key))
            {
                hm.set = newImgAt(key, new Vector2(9.5f, 0.5f),
                                  leftE[2], null, 1);
                hm.set2 = newImgAt(key, new Vector2(-28.2f, 0.5f),
                                   rightE[2], null, 1);
            }
            else
            {
                hm.set    = XtraStuff[key];
                hm.set2   = XtraStuff[key + "2"];
                hm.before = hm.set.sprite;
            }
            break;

        case itemType.xe:
            if (!XtraStuff.ContainsKey(key))
            {
                hm.set = newImgAt(key, new Vector2(-4.5f, -5.4f),
                                  leftE[2], leftE[1].transform, 1);
                hm.set2 = newImgAt(key, new Vector2(-4.5f, -5.4f),
                                   rightE[2], rightE[1].transform, 1);
            }
            else
            {
                hm.set    = XtraStuff[key];
                hm.set2   = XtraStuff[key + "2"];
                hm.before = hm.set.sprite;
            }
            Material addY = Resources.Load <Material>("Additive");
            hm.set.material  = addY;
            hm.set2.material = addY;

            break;

        case itemType.BOW:
            int indexbo;
            if (XtraStuff.ContainsKey("ch") && XtraStuff["ch"].sprite.name == "chsf")
            {
                indexbo = XtraStuff["ch"].transform.GetSiblingIndex();
            }
            else
            {
                indexbo = clothes.transform.parent.childCount;
            }
            switch (newThang.name)
            {
            case "BOW":
                setHm(new Vector2(10.378f, 453f), clothes, null, indexbo,
                      key, ref hm);
                break;

            default:
                setHm(new Vector2(0f, 0f), clothes, null, indexbo,
                      key, ref hm);
                break;
            }
            break;

        case itemType.chneckwear:
            int index = 0;
            if (newThang.name == "chsf")
            {
                index = clothes.transform.parent.childCount;
            }
            else if (newThang.name == "choker")
            {
                index = -1;
            }
            else if (XtraStuff.ContainsKey("BO"))
            {
                index = XtraStuff["BO"].transform.GetSiblingIndex();
            }

            switch (newThang.name)
            {
            case "choker":
                setHm(new Vector2(10.37823f, 531f), clothes, null, index, key, ref hm);
                break;

            case "chokerbow":
                setHm(new Vector2(10.37823f, 12.9f), clothes, null, index, key, ref hm);
                break;

            case "chsf":
                setHm(new Vector2(-26.94f, 3.26f), clothes, null, index, key, ref hm);
                break;
            }
            break;

        case itemType.glasses:
            setHm(new Vector2(-7.5f, 72.5f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.freckles:
            setHm(new Vector2(0f, -81.5f), skin[6], null, skin[0].transform.GetSiblingIndex() + 1,
                  key, ref hm);
            break;

        case itemType.starfreckles:
            setHm(new Vector2(0f, -102f), skin[6], null, skin[6].rectTransform.GetSiblingIndex(),
                  key, ref hm);
            break;

        case itemType.lippiercing:
            setHm(new Vector2(0f, 32.9f), skin[6], lips.rectTransform, 4,
                  key, ref hm);
            break;

        case itemType.sl1:
            setHm(new Vector2(0.55f, 11.1f), skin[6], lips.rectTransform, 0,
                  key, ref hm);
            hm.set.material = Resources.Load <Material>("Additive");
            break;

        case itemType.sx_tears:
            setHm(new Vector2(29.7f, -39.86f), rightE[2], null, rightE[0].transform.childCount,
                  key, ref hm);
            break;

        case itemType.bubble:
            setHm(new Vector2(-6.151662f, -271.2f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.eear:
            int index2;
            if (XtraStuff.ContainsKey("ha"))
            {
                index2 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("fl"))
            {
                index2 = XtraStuff["fl"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("he"))
            {
                index2 = XtraStuff["he"].transform.GetSiblingIndex();
            }
            else
            {
                index2 = 0;
            }
            setHmTwice(new Vector2(-328.1f, 570.4f), new Vector2(329.3f, 570.4f),
                       skin[6], null, index2, key, ref hm);
            break;

        case itemType.hesidehorn:
            int index3;
            if (XtraStuff.ContainsKey("ha"))
            {
                index3 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("fl"))
            {
                index3 = XtraStuff["fl"].transform.GetSiblingIndex();
            }
            else
            {
                index3 = 0;
            }
            setHmTwice(new Vector2(-328.1f, 566.2f), new Vector2(329.3012f, 566.2f),
                       skin[6], null, index3, key, ref hm);
            break;

        case itemType.EPatch:
            setHm(new Vector2(-225.1f, 52.7f), rightE[2], null, 0,
                  key, ref hm);
            break;

        case itemType.hdphones:
            setHmTwice(new Vector2(-238.808f, 468.9f), new Vector2(231f, 468.9f),
                       skin[6], null, bangs.transform.GetSiblingIndex(), key, ref hm);
            break;

        case itemType.ctetopband:
            int indexCT;
            if (XtraStuff.ContainsKey("un"))
            {
                indexCT = XtraStuff["un"].transform.GetSiblingIndex();
            }
            else
            {
                indexCT = skin[6].transform.parent.childCount;
            }

            switch (newThang.name)
            {
            case "ctcr":
                setHmTwice(new Vector2(-101f, 614.2f), new Vector2(101f, 614.2f), skin[6], null, indexCT, key, ref hm);
                break;

            case "ctband":
                setHmTwice(new Vector2(-201f, 600.2f), new Vector2(201f, 600.2f), skin[6], null, indexCT, key, ref hm);
                break;
            }
            break;

        case itemType.msk:
            int index5;
            if (XtraStuff.ContainsKey("hd"))
            {
                index5 = XtraStuff["hd"].transform.GetSiblingIndex();
            }
            else
            {
                index5 = bangs.transform.GetSiblingIndex();
            }
            setHmTwice(new Vector2(-173.0009f, -192.2f), new Vector2(162.4f, -192.2f),
                       skin[6], null, index5, key, ref hm);
            break;

        case itemType.scar:
            setHm(new Vector2(-7.828147f, 16.29871f), rightE[2], null, 0,
                  key, ref hm);
            break;

        case itemType.unicorn:
            setHm(new Vector2(44.5f, 607.314f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.b0odnos:
            setHm(new Vector2(24.1f, -30.4f), skin[6], skin[0].rectTransform, skin[6].transform.parent.childCount,
                  key, ref hm);
            break;

        case itemType.bood:
            setHm(new Vector2(34f, -143.3f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.hwrstrand:
            setHm(new Vector2(15f, 629.59f), skin[6], null, 1,
                  key, ref hm);
            break;

        case itemType.harts:
            setHm(new Vector2(6f, 524.4f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.overalls:


            setHm(Vector2.zero, clothes, null, 1,
                  key, ref hm);
            break;

        case itemType.hrclip:
            setHm(new Vector2(354.7f, 263f), skin[6], null, bangs.transform.GetSiblingIndex() + 1,
                  key, ref hm);
            break;

        case itemType.nosepiercing:
            setHm(new Vector2(-50.9f, -51f), skin[6], skin[0].rectTransform, skin[6].transform.parent.childCount,
                  key, ref hm);
            break;

        case itemType.JBandage:
            setHm(new Vector2(-199.7f, -274.8f), skin[6], null, bangs.transform.GetSiblingIndex(),
                  key, ref hm);
            break;

        case itemType.bDaid:
            setHmTwice(new Vector2(-67.8f, 24.8f), new Vector2(67.8f, 24.8f),
                       skin[6], skin[0].rectTransform, 0, key, ref hm);
            break;


        case itemType.FGliter:
            setHmTwice(new Vector2(-122f, 0f), new Vector2(122f, 0f),
                       skin[6], null, 2, key, ref hm);
            Material add = Resources.Load <Material>("Additive");
            hm.set.material  = add;
            hm.set2.material = add;
            break;

        case itemType.bronzer:
            setHmTwice(new Vector2(-237f, 108.1f), new Vector2(237f, 108.1f),
                       skin[6], null, 2, key, ref hm);
            break;

        case itemType.UEye:
            setHmTwice(new Vector2(-190f, 24.4f), new Vector2(190f, 24.4f),
                       skin[6], null, 2, key, ref hm);
            break;


        /*
         *  overall
         *  scarf
         *  cutetopband
         *  unicorn
         *  tie
         *
         *  hairclip
         *  nose ring
         *  bandage
         *  bandaid
         *
         *  faceglitter
         *  undereye
         *  bronzer
         *  happy eye/squint
         *
         *  petal
         * backgrounds
         *
         */
        case itemType.flower:
            int index4;
            if (XtraStuff.ContainsKey("ha"))
            {
                index4 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("ct"))
            {
                index4 = XtraStuff["ct"].transform.GetSiblingIndex() + 1;
            }
            else
            {
                index4 = 0;
            }
            setHm(new Vector2(0f, 422.9f), skin[6], null, index4,
                  key, ref hm);
            break;

        case itemType.e_ye:
            hm.set    = skin[2];
            hm.set2   = skin[3];
            hm.before = hm.set.sprite;
            break;

        case itemType.l_p:
            hm.set    = lips;
            hm.before = hm.set.sprite;
            break;

        case itemType.n_se:
            hm.set    = skin[0];
            hm.before = hm.set.sprite;
            break;

        case itemType.t_clothes:
            hm.set = clothes;
            clothes.gameObject.SetActive(true);
            XtraStuff[key] = clothes;
            hm.before      = hm.set.sprite;
            break;

        case itemType.bg:
            hm.set      = bg;
            hm.beforeC  = hm.set.color;
            hm.before   = hm.set.sprite;
            hm.beforeC2 = Camera.main.backgroundColor;
            if (newThang == null)
            {
                hm.set.sprite = null; hm.set.color = Color.clear;
            }
            else
            {
                hm.beforeC = hm.set.color;
                if (hm.before == null || (hm.before != null && hm.before.name != newThang.name))
                {
                    hm.set.color = Color.white;
                }
            }

            break;

        case itemType.ebrow:
            hm.set    = leftE[2];
            hm.set2   = rightE[2];
            hm.before = hm.set.sprite;
            break;

        case itemType.bh_air:
            hm.set    = hair;
            hm.before = hm.set.sprite;
            Vector2 size = hair.rectTransform.sizeDelta;
            hm.beforeC2 = new Color(size.x / 1500, size.y / 2500, 0, 0);

            break;

        case itemType.b_ngs:
            hm.set    = bangs;
            hm.before = hm.set.sprite;
            if (newThang.name == "b_92")
            {
                bangs.rectTransform.anchoredPosition = new Vector2(bangs.rectTransform.anchoredPosition.x, 625.8f);
            }
            else
            {
                bangs.rectTransform.anchoredPosition = new Vector2(bangs.rectTransform.anchoredPosition.x, 503);
            }
            break;

        case itemType.skin:
            hm.set      = skin[1];
            hm.before   = hm.set.sprite;
            hm.beforeC2 = lips.color;
            break;

        case itemType.blush:
            hm.set = skin[6];
            hm.set.gameObject.SetActive(true);
            XtraStuff[key] = skin[6];
            hm.before      = hm.set.sprite;
            break;

        case itemType.Particle_petal:
        case itemType.pArticle_sparkle:
        case itemType.particle_snow:
            hm.before      = newThang;
            XtraStuff[key] = null;
            break;

        case itemType.wdEluxeScript:
            int indexWd = 0;
            if (XtraStuff.ContainsKey("wf"))
            {
                indexWd = XtraStuff["wf"].transform.GetSiblingIndex();
            }
            setHm(Vector2.zero, bg, bg.transform.parent, indexWd, "wd", ref hm);
            if (hm.set.gameObject.GetComponent <WaterScript>() == null)
            {
                hm.set.gameObject.AddComponent <WaterScript>();
            }
            hm.set.sprite          = null;
            hm.set.gameObject.name = "wd";
            break;

        case itemType.wfFallScript:
            setHm(Vector2.zero, bg, bg.transform.parent, 0, "wf", ref hm);
            WaterfallScript wf = hm.set.gameObject.GetComponent <WaterfallScript>();
            if (wf == null)
            {
                hm.set.gameObject.AddComponent <WaterfallScript>();
            }
            else
            {
                hm.beforeC = wf.LightColor;
            }
            hm.set.sprite          = null;
            hm.set.gameObject.name = "wf";
            break;

        case itemType.GXlitch:
            if (!XtraStuff.ContainsKey("GX"))
            {
                Glitch g = Camera.main.gameObject.GetComponent <Glitch>();
                g.enabled       = true;
                g.colorDrift    = 0.25f;
                XtraStuff["GX"] = null;
            }
            hm.before = newThang;
            break;

        case itemType.CXolor:
        case itemType.BMlm:
        case itemType.BNry:
        case itemType.RPamp:
        case itemType.FRGradient:
            string FXkey = it.ToString().Substring(0, 2);
            XtraStuff[FXkey] = null;
            break;
        }

        if (hm.set != null)
        {
            if (hm.set != bg && it != itemType.wfFallScript)
            {
                hm.beforeC = hm.set.color;
            }
            if (newThang != null)
            {
                hm.set.sprite = newThang;
                setNative(hm.set, it);
                if (hm.set2 != null)
                {
                    hm.set2.sprite = newThang;
                    hm.beforeC2    = hm.set2.color;
                    setNative(hm.set2, it);
                }
            }
        }
        return(hm);
    }
コード例 #3
0
    public UndoInfo faceSet(Sprite newThang, itemType it)
    {
        //key is the first 2 chars. if 2nd, first 2 chars+"2"
        UndoInfo hm;

        hm.set     = null;
        hm.set2    = null;
        hm.before  = null;
        hm.beforeC = Color.white;
        string key = "";

        if (newThang != null)
        {
            key = newThang.name.Substring(0, 2);
        }

        switch (it)
        {
        case itemType.eye:
            switch (newThang.name)
            {
            case "iris":
                hm.set    = leftE[1];
                hm.set2   = rightE[1];
                hm.before = hm.set.sprite;
                break;

            case "whites":
                hm.set    = leftE[0];
                hm.set2   = rightE[0];
                hm.before = hm.set.sprite;
                break;

            case "se4":
            case "se5":
            case "se1":
            case "se6":
                if (!XtraStuff.ContainsKey(key))
                {
                    hm.set = newImgAt(key, new Vector2(-3f, 7.783465f),
                                      leftE[2], null, 1);
                    hm.set2 = newImgAt(key, new Vector2(-3f, 7.783465f),
                                       rightE[2], null, 1);
                }
                else
                {
                    hm.set    = XtraStuff[key];
                    hm.set2   = XtraStuff[key + "2"];
                    hm.before = hm.set.sprite;
                }
                break;

            case "Se":
                if (!XtraStuff.ContainsKey(key))
                {
                    hm.set = newImgAt(key, new Vector2(9.5f, 0.5f),
                                      leftE[2], null, 1);
                    hm.set2 = newImgAt(key, new Vector2(-28.2f, 0.5f),
                                       rightE[2], null, 1);
                }
                else
                {
                    hm.set    = XtraStuff[key];
                    hm.set2   = XtraStuff[key + "2"];
                    hm.before = hm.set.sprite;
                }
                break;

            case "xe":
            case "ye":
                if (!XtraStuff.ContainsKey(key))
                {
                    hm.set = newImgAt(key, new Vector2(-4.5f, -5.4f),
                                      leftE[2], leftE[1].transform, 1);
                    hm.set2 = newImgAt(key, new Vector2(-4.5f, -5.4f),
                                       rightE[2], rightE[1].transform, 1);
                }
                else
                {
                    hm.set    = XtraStuff[key];
                    hm.set2   = XtraStuff[key + "2"];
                    hm.before = hm.set.sprite;
                }
                Material add = Resources.Load <Material>("Additive");
                hm.set.material  = add;
                hm.set2.material = add;
                break;
            }

            break;

        case itemType.bow:
            setHm(new Vector2(10.378f, 453f), clothes, null, clothes.transform.parent.childCount,
                  key, ref hm);
            break;

        case itemType.choker:
            int index;
            if (XtraStuff.ContainsKey("bo"))
            {
                index = XtraStuff["bo"].transform.GetSiblingIndex();
            }
            else
            {
                index = 0;
            }
            switch (newThang.name)
            {
            case "choker":
                setHm(new Vector2(10.37823f, 531f), clothes, null, index, key, ref hm);
                break;

            case "chokerbow":
                setHm(new Vector2(10.37823f, 12.9f), clothes, null, index, key, ref hm);
                break;
            }
            break;

        case itemType.glasses:
            setHm(new Vector2(-7.5f, 112.5f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.freckles:
            setHm(new Vector2(0f, -44.24f), skin[6], null, skin[0].transform.GetSiblingIndex() + 1,
                  key, ref hm);
            break;

        case itemType.starfreckles:
            setHm(new Vector2(0f, -68), skin[6], null, bangs.rectTransform.GetSiblingIndex(),
                  key, ref hm);
            break;

        case itemType.lippiercing:
            setHm(new Vector2(0f, 32.9f), skin[6], lips.rectTransform, 4,
                  key, ref hm);
            break;

        case itemType.sl1:
            setHm(new Vector2(0.55f, 11.1f), skin[6], lips.rectTransform, 0,
                  key, ref hm);
            hm.set.material = Resources.Load <Material>("Additive");
            break;

        case itemType.tears:
            setHm(new Vector2(29.7f, -39.86f), rightE[2], null, rightE[0].transform.childCount,
                  key, ref hm);
            break;

        case itemType.bubble:
            setHm(new Vector2(-6.151662f, -234f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.ear:
            int index2;
            if (XtraStuff.ContainsKey("ha"))
            {
                index2 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("fl"))
            {
                index2 = XtraStuff["fl"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("he"))
            {
                index2 = XtraStuff["he"].transform.GetSiblingIndex();
            }
            else
            {
                index2 = 0;
            }
            setHmTwice(new Vector2(-328.1f, 609.5f), new Vector2(329.3f, 609.5f),
                       skin[6], null, index2, key, ref hm);
            break;

        case itemType.sidehorn:
            int index3;
            if (XtraStuff.ContainsKey("ha"))
            {
                index3 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else if (XtraStuff.ContainsKey("fl"))
            {
                index3 = XtraStuff["fl"].transform.GetSiblingIndex();
            }
            else
            {
                index3 = 0;
            }
            setHmTwice(new Vector2(-328.1f, 596.8f), new Vector2(329.3012f, 596.8f),
                       skin[6], null, index3, key, ref hm);
            break;

        case itemType.eyepatch:
            setHm(new Vector2(-225.1f, 52.7f), rightE[2], null, 0,
                  key, ref hm);
            break;

        case itemType.hdphones:
            setHmTwice(new Vector2(-238.808f, 513.5f), new Vector2(231f, 513.5f),
                       skin[6], null, bangs.transform.GetSiblingIndex(), key, ref hm);
            break;

        case itemType.msk:
            int index5;
            if (XtraStuff.ContainsKey("hd"))
            {
                index5 = XtraStuff["hd"].transform.GetSiblingIndex();
            }
            else
            {
                index5 = bangs.transform.GetSiblingIndex();
            }
            setHmTwice(new Vector2(-173.0009f, -140f), new Vector2(162.4f, -140f),
                       skin[6], null, index5, key, ref hm);
            break;

        case itemType.scar:
            setHm(new Vector2(-7.828147f, 16.29871f), rightE[2], null, 0,
                  key, ref hm);
            break;

        case itemType.unicorn:
            setHm(new Vector2(44.5f, 607.314f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.blood2:
            setHm(new Vector2(24.1f, -30.4f), skin[6], skin[0].rectTransform, 0,
                  key, ref hm);
            break;

        case itemType.blood:
            setHm(new Vector2(34f, -99.21933f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.hairstrand:
            setHm(new Vector2(15f, 629.59f), skin[6], null, 1,
                  key, ref hm);
            break;

        case itemType.hearts:
            setHm(new Vector2(6f, 585.7f), skin[6], null, 0,
                  key, ref hm);
            break;

        case itemType.flower:
            int index4;
            if (XtraStuff.ContainsKey("ha"))
            {
                index4 = XtraStuff["ha"].transform.GetSiblingIndex();
            }
            else
            {
                index4 = 0;
            }
            setHm(new Vector2(0f, 518.5f), skin[6], null, index4,
                  key, ref hm);
            break;

        case itemType.eyes:
            hm.set    = skin[2];
            hm.set2   = skin[3];
            hm.before = hm.set.sprite;
            break;

        case itemType.lips:
            hm.set    = lips;
            hm.before = hm.set.sprite;
            break;

        case itemType.nose:
            hm.set    = skin[0];
            hm.before = hm.set.sprite;
            break;

        case itemType.clothes:
            hm.set = clothes;
            clothes.gameObject.SetActive(true);
            XtraStuff[key] = clothes;
            hm.before      = hm.set.sprite;
            break;

        case itemType.bg:
            hm.set = bg;
            if (newThang == null)
            {
                hm.set.color = Color.clear;
            }
            else
            {
                hm.beforeC   = hm.set.color;
                hm.set.color = Color.white;
            }
            hm.before = hm.set.sprite;
            break;

        case itemType.brows:
            hm.set    = leftE[2];
            hm.set2   = rightE[2];
            hm.before = hm.set.sprite;
            break;

        case itemType.eyelid:
            hm.set    = skin[5];
            hm.set2   = skin[7];
            hm.before = hm.set.sprite;
            break;

        case itemType.hair:
            hm.set    = hair;
            hm.before = hm.set.sprite;
            break;

        case itemType.bangs:
            hm.set    = bangs;
            hm.before = hm.set.sprite;
            break;

        case itemType.skin:
            hm.set    = skin[1];
            hm.before = hm.set.sprite;
            break;

        case itemType.blush:
            hm.set = skin[6];
            hm.set.gameObject.SetActive(true);
            XtraStuff[key] = skin[6];
            hm.before      = hm.set.sprite;
            break;

        case itemType.particles:
            hm.before      = newThang;
            XtraStuff[key] = null;
            break;

        case itemType.WaterScript:
            setHm(Vector2.zero, bg, bg.transform.parent, 0, "wd", ref hm);
            if (hm.set.gameObject.GetComponent <WaterScript>() == null)
            {
                hm.set.gameObject.AddComponent <WaterScript>();
            }
            hm.set.sprite          = null;
            hm.set.gameObject.name = "wd";
            break;

        case itemType.WaterfallScript:
            setHm(Vector2.zero, bg, bg.transform.parent, 0, "wf", ref hm);
            WaterfallScript wf = hm.set.gameObject.GetComponent <WaterfallScript>();
            if (wf == null)
            {
                hm.set.gameObject.AddComponent <WaterfallScript>();
            }
            else
            {
                hm.beforeC = wf.LightColor;
            }
            hm.set.sprite          = null;
            hm.set.gameObject.name = "wf";
            break;

        case itemType.glitch:
            if (!XtraStuff.ContainsKey("GX"))
            {
                Camera.main.gameObject.AddComponent <Glitch>().colorDrift = 0.25f;
                XtraStuff["GX"] = null;
            }
            hm.before = newThang;
            break;
        }

        if (hm.set != null)
        {
            if (hm.set != bg && it != itemType.WaterfallScript)
            {
                hm.beforeC = hm.set.color;
            }
            if (newThang != null)
            {
                hm.set.sprite = newThang;
                //we don't want to resize if bg is pattern, or if user has adjusted size of nose
                if (it != itemType.bg && it != itemType.nose)
                {
                    hm.set.SetNativeSize();
                }
                if (hm.set2 != null)
                {
                    hm.set2.sprite = newThang;
                    hm.set2.SetNativeSize();
                }
            }
        }
        return(hm);
    }