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); } }
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); }
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); }