public EffectsColorizer.HSBColor ColorToHSV(Color color) { EffectsColorizer.HSBColor hsbColor = new EffectsColorizer.HSBColor(0.0f, 0.0f, 0.0f, (float)color.a); float r = (float)color.r; float g = (float)color.g; float b = (float)color.b; float num1 = Mathf.Max(r, Mathf.Max(g, b)); if ((double)num1 <= 0.0) { return(hsbColor); } float num2 = Mathf.Min(r, Mathf.Min(g, b)); float num3 = num1 - num2; if ((double)num1 > (double)num2) { hsbColor.h = (double)g != (double)num1 ? ((double)b != (double)num1 ? ((double)b <= (double)g ? (float)(((double)g - (double)b) / (double)num3 * 60.0) : (float)(((double)g - (double)b) / (double)num3 * 60.0 + 360.0)) : (float)(((double)r - (double)g) / (double)num3 * 60.0 + 240.0)) : (float)(((double)b - (double)r) / (double)num3 * 60.0 + 120.0); if ((double)hsbColor.h < 0.0) { hsbColor.h += 360f; } } else { hsbColor.h = 0.0f; } hsbColor.h *= 1f / 360f; hsbColor.s = (float)((double)num3 / (double)num1 * 1.0); hsbColor.b = num1; return(hsbColor); }
public Color HSVToColor(EffectsColorizer.HSBColor hsbColor) { float num1 = hsbColor.b; float num2 = hsbColor.b; float num3 = hsbColor.b; if ((double)hsbColor.s != 0.0) { float b = hsbColor.b; float num4 = hsbColor.b * hsbColor.s; float num5 = hsbColor.b - num4; float num6 = hsbColor.h * 360f; if ((double)num6 < 60.0) { num1 = b; num2 = (float)((double)num6 * (double)num4 / 60.0) + num5; num3 = num5; } else if ((double)num6 < 120.0) { num1 = (float)(-((double)num6 - 120.0) * (double)num4 / 60.0) + num5; num2 = b; num3 = num5; } else if ((double)num6 < 180.0) { num1 = num5; num2 = b; num3 = (float)(((double)num6 - 120.0) * (double)num4 / 60.0) + num5; } else if ((double)num6 < 240.0) { num1 = num5; num2 = (float)(-((double)num6 - 240.0) * (double)num4 / 60.0) + num5; num3 = b; } else if ((double)num6 < 300.0) { num1 = (float)(((double)num6 - 240.0) * (double)num4 / 60.0) + num5; num2 = num5; num3 = b; } else if ((double)num6 <= 360.0) { num1 = b; num2 = num5; num3 = (float)(-((double)num6 - 360.0) * (double)num4 / 60.0) + num5; } else { num1 = 0.0f; num2 = 0.0f; num3 = 0.0f; } } return(new Color(Mathf.Clamp01(num1), Mathf.Clamp01(num2), Mathf.Clamp01(num3), hsbColor.a)); }
private void ChangeColor(GameObject effect, Color color) { foreach (Renderer componentsInChild1 in (Renderer[])effect.GetComponentsInChildren <Renderer>()) { Material material1 = !this.UseInstanceWhenNotEditorMode ? componentsInChild1.get_sharedMaterial() : componentsInChild1.get_material(); EffectsColorizer.HSBColor hsv1 = this.ColorToHSV(this.TintColor); if (!Object.op_Equality((Object)material1, (Object)null)) { if (material1.HasProperty("_TintColor")) { EffectsColorizer.HSBColor hsv2 = this.ColorToHSV(material1.GetColor("_TintColor")); hsv2.h = hsv1.h / 360f; color = this.HSVToColor(hsv2); material1.SetColor("_TintColor", color); } if (material1.HasProperty("_CoreColor")) { EffectsColorizer.HSBColor hsv2 = this.ColorToHSV(material1.GetColor("_CoreColor")); hsv2.h = hsv1.h / 360f; color = this.HSVToColor(hsv2); material1.SetColor("_CoreColor", color); } foreach (Projector componentsInChild2 in (Projector[])effect.GetComponentsInChildren <Projector>()) { Material material2 = componentsInChild2.get_material(); if (!Object.op_Equality((Object)material2, (Object)null) && material2.HasProperty("_TintColor")) { EffectsColorizer.HSBColor hsv2 = this.ColorToHSV(material2.GetColor("_TintColor")); hsv2.h = hsv1.h / 360f; color = this.HSVToColor(hsv2); componentsInChild2.get_material().SetColor("_TintColor", color); } } } } Light componentInChildren = (Light)effect.GetComponentInChildren <Light>(); if (!Object.op_Inequality((Object)componentInChildren, (Object)null)) { return; } componentInChildren.set_color(color); }