diff --git a/src/Debug/EcsDebugUtility.cs b/src/Debug/EcsDebugUtility.cs index 6cd3f19..16fb9c4 100644 --- a/src/Debug/EcsDebugUtility.cs +++ b/src/Debug/EcsDebugUtility.cs @@ -160,111 +160,6 @@ namespace DCFApixels.DragonECS #region GetColor - #region Auto Color - private static Dictionary _words = new Dictionary(); - private class WordColor - { - public int wordsCount; - public MetaColor color; - } - private class NameColor - { - public List colors = new List(); - public NameColor(IEnumerable nameWords) - { - int i = 0; - foreach (var word in nameWords) - { - if (_words.TryGetValue(word, out WordColor color) == false) - { - unchecked - { - color = new WordColor(); - color.color = new MetaColor(word).UpContrastColor(); - _words.Add(word, color); - } - } - color.wordsCount++; - colors.Add(color); - i++; - } - } - private int CalcTotalWordsColor() - { - int result = 0; - for (int i = 0, iMax = colors.Count; i < iMax; i++) - { - result += colors[i].wordsCount; - } - return result; - } - public MetaColor CalcColor() - { - float r = 0; - float g = 0; - float b = 0; - float totalWordsCount = CalcTotalWordsColor(); - for (int i = 0, iMax = colors.Count; i < iMax; i++) - { - var color = colors[i]; - float m = color.wordsCount / totalWordsCount; - r = m * color.color.r; - g = m * color.color.g; - b = m * color.color.b; - } - return UpContrastColor(r, g, b); - } - - public MetaColor UpContrastColor(float r, float g, float b) - { - float minChannel = Math.Min(Math.Min(r, g), b); - float maxChannel = Math.Max(Math.Max(r, g), b); - if (maxChannel == minChannel) - { - return default; - } - float factor = 255f / (maxChannel - minChannel); - return new MetaColor((byte)((r - minChannel) * factor), (byte)((g - minChannel) * factor), (byte)((b - minChannel) * factor)); - } - } - private static Dictionary _names = new Dictionary(); - private static MetaColor CalcNameColorFor(Type type) - { - Type targetType = type.IsGenericType ? type.GetGenericTypeDefinition() : type; - if (!_names.TryGetValue(targetType, out NameColor nameColor)) - { - nameColor = new NameColor(SplitString(targetType.Name)); - _names.Add(targetType, nameColor); - } - return nameColor.CalcColor(); - } - private static List SplitString(string s) - { - string subs; - - List words = new List(); - int start = 0; - for (int i = 1; i < s.Length; i++) - { - if (char.IsUpper(s[i])) - { - subs = s.Substring(start, i - start); - if (subs.Length > 2 && subs.ToLower() != "system") - { - words.Add(subs); - } - start = i; - } - } - subs = s.Substring(start); - if (subs.Length > 2 && subs.ToLower() != "system") - { - words.Add(subs); - } - return words; - } - #endregion - public static MetaColor GetColor(object obj) { return obj is IEcsMetaProvider intr ? @@ -280,7 +175,7 @@ namespace DCFApixels.DragonECS var atr = type.GetCustomAttribute(); return atr != null ? atr.color #if DEBUG //optimization for release build - : CalcNameColorFor(type); + : new MetaColor(type.Name); #else : MetaColor.BlackColor; #endif