using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] public class ColorManager : MonoBehaviour { public Color normalCellBGColor = Color.white; public Color hintCellBGColor = Color.white; public static ColorManager intance; public Color None; public Color Red; public Color Blue; public Color Yellow; public Color Purple; public Color Orange; public Color Green; public Color Brown; private void Awake() { intance = this; } public static PipeColor MixPipeColor(List c) { if (c == null || c.Count == 0) { return PipeColor.None; } if (c.Count >= 3 && c.Contains(PipeColor.A) && c.Contains(PipeColor.B) && c.Contains(PipeColor.C)) { return PipeColor.ABC; } if (c.Count >= 2) { if (c.Contains(PipeColor.A) && c.Contains(PipeColor.B)) { return PipeColor.AB; } if (c.Contains(PipeColor.A) && c.Contains(PipeColor.C)) { return PipeColor.AC; } if (c.Contains(PipeColor.C) && c.Contains(PipeColor.B)) { return PipeColor.BC; } } else if (c.Count >= 1) { return c[0]; } return PipeColor.None; } public static List SeprateColor(PipeColor c) { List list = new List(); switch (c) { case PipeColor.A: list.Add(PipeColor.A); break; case PipeColor.B: list.Add(PipeColor.B); break; case PipeColor.C: list.Add(PipeColor.C); break; case PipeColor.AB: list.Add(PipeColor.A); list.Add(PipeColor.B); break; case PipeColor.AC: list.Add(PipeColor.A); list.Add(PipeColor.C); break; case PipeColor.BC: list.Add(PipeColor.B); list.Add(PipeColor.C); break; case PipeColor.ABC: list.Add(PipeColor.A); list.Add(PipeColor.B); list.Add(PipeColor.C); break; } return list; } }