Inverted all colors in ColorsList, added in ColorManager which deals with blending dyed objects, and prevented objects with different dyes from being stacked on each other.

This commit is contained in:
JoshuaNavarro 2019-09-18 22:55:06 -07:00
parent cd87139168
commit 0d252799de
7 changed files with 289 additions and 146 deletions

View File

@ -1173,5 +1173,12 @@ namespace Revitalize.Framework
StatueOfPerfection=160,
SolidGoldLewis=164
}
public enum DyeBlendMode
{
Multiplier,
Blend,
Average
}
}
}

View File

@ -9,290 +9,290 @@ namespace Revitalize.Framework.Illuminate
{
public class ColorsList
{
public static NamedColor AliceBlue = new NamedColor("Alice Blue", new Color(15, 7, 0, 255).Invert());
public static NamedColor AliceBlue = new NamedColor("Alice Blue",15, 7, 0, 255,true);
public static NamedColor AntiqueWhite = new NamedColor("Antique White", 5, 20, 40, 255);
public static NamedColor AntiqueWhite = new NamedColor("Antique White",5, 20, 40, 255,true);
public static NamedColor Aqua = new NamedColor("Aqua", 255, 0, 0, 255);
public static NamedColor Aqua = new NamedColor("Aqua", 255, 0, 0, 255,true);
public static NamedColor Aquamarine = new NamedColor("Aquamarine", 128, 0, 43, 255);
public static NamedColor Aquamarine = new NamedColor("Aquamarine",128, 0, 43, 255,true);
/// <summary>A whiteish sort of color witha hint of blue</summary>
public static NamedColor Azure = new NamedColor("Azure", 15, 0, 0, 255);
public static NamedColor Azure = new NamedColor("Azure",15, 0, 0, 255,true);
public static NamedColor Beige = new NamedColor("Beige", 10, 10, 35, 255);
public static NamedColor Beige = new NamedColor("Beige",10, 10, 35, 255,true);
public static NamedColor Bisque = new NamedColor("Bisque", 0, 27, 59, 255);
public static NamedColor Bisque = new NamedColor("Bisque", 0, 27, 59, 255,true);
public static NamedColor Black = new NamedColor("Black", 255, 255, 255, 255);
public static NamedColor Black = new NamedColor("Black", 255, 255, 255, 255,true);
public static NamedColor BlanchedAlmond = new NamedColor("Blanched Almond", 0, 20, 40, 255);
public static NamedColor BlanchedAlmond = new NamedColor("Blanched Almond", 0, 20, 40, 255,true);
public static NamedColor Blue = new NamedColor("Blue", 255, 255, 0, 255);
public static NamedColor Blue = new NamedColor("Blue", 255, 255, 0, 255,true);
public static NamedColor BlueViolet = new NamedColor("Blue Violet", 117, 212, 29, 255);
public static NamedColor BlueViolet = new NamedColor("Blue Violet", 117, 212, 29, 255,true);
public static NamedColor Brown = new NamedColor("Brown", 90, 213, 213, 255);
public static NamedColor Brown = new NamedColor("Brown", 90, 213, 213, 255,true);
public static NamedColor BurlyWood = new NamedColor("Burly Wood", 33, 71, 120, 255);
public static NamedColor BurlyWood = new NamedColor("Burly Wood", 33, 71, 120, 255,true);
public static NamedColor CadetBlue = new NamedColor("Cadet Blue", 160, 97, 95, 255);
public static NamedColor CadetBlue = new NamedColor("Cadet Blue", 160, 97, 95, 255,true);
public static NamedColor Chartreuse = new NamedColor("Chartreuse", 128, 0, 255, 255);
public static NamedColor Chartreuse = new NamedColor("Chartreuse", 128, 0, 255, 255,true);
public static NamedColor Chocolate = new NamedColor("Chocolate", 45, 150, 225, 255);
public static NamedColor Chocolate = new NamedColor("Chocolate", 45, 150, 225, 255,true);
public static NamedColor Coral = new NamedColor("Coral", 0, 128, 175, 255);
public static NamedColor Coral = new NamedColor("Coral", 0, 128, 175, 255,true);
public static NamedColor CornflowerBlue = new NamedColor("Cornflower Blue", 155, 106, 18, 255);
public static NamedColor CornflowerBlue = new NamedColor("Cornflower Blue", 155, 106, 18, 255,true);
/// <summary>A yellowish color.</summary>
public static NamedColor Cornsilk = new NamedColor("Cornsilk", 0, 7, 35, 255);
public static NamedColor Cornsilk = new NamedColor("Cornsilk", 0, 7, 35, 255,true);
public static NamedColor Crimson = new NamedColor("Crimson", 35, 235, 195, 255);
public static NamedColor Crimson = new NamedColor("Crimson", 35, 235, 195, 255,true);
public static NamedColor Cyan = new NamedColor("Cyan",255, 0, 0, 255);
public static NamedColor Cyan = new NamedColor("Cyan",255, 0, 0, 255,true);
public static NamedColor DarkBlue = new NamedColor("Dark Blue", 255, 255, 116, 255);
public static NamedColor DarkBlue = new NamedColor("Dark Blue", 255, 255, 116, 255,true);
public static NamedColor DarkCyan = new NamedColor("Dark Cyan", 255, 114, 114, 255);
public static NamedColor DarkCyan = new NamedColor("Dark Cyan", 255, 114, 114, 255,true);
public static NamedColor DarkGoldenRod = new NamedColor("Dark Goldenrod", 71, 121, 244, 255);
public static NamedColor DarkGoldenRod = new NamedColor("Dark Goldenrod", 71, 121, 244, 255,true);
public static NamedColor DarkGray = new NamedColor("Dark Gray", 86, 86, 86, 255);
public static NamedColor DarkGray = new NamedColor("Dark Gray", 86, 86, 86, 255,true);
public static NamedColor DarkGreen = new NamedColor("Dark Green", 255, 155, 255, 255);
public static NamedColor DarkGreen = new NamedColor("Dark Green", 255, 155, 255, 255,true);
public static NamedColor DarkKhaki = new NamedColor("Dark Khaki", 66, 72, 148, 255);
public static NamedColor DarkKhaki = new NamedColor("Dark Khaki", 66, 72, 148, 255,true);
public static NamedColor DarkMagenta = new NamedColor("Dark Magenta", 116, 255, 116, 255);
public static NamedColor DarkMagenta = new NamedColor("Dark Magenta", 116, 255, 116, 255,true);
public static NamedColor DarkOliveGreen = new NamedColor("Dark Olive Green", 170, 148, 208, 255);
public static NamedColor DarkOliveGreen = new NamedColor("Dark Olive Green", 170, 148, 208, 255,true);
public static NamedColor DarkOrange = new NamedColor("Dark Orange", 0, 115, 255, 255);
public static NamedColor DarkOrange = new NamedColor("Dark Orange", 0, 115, 255, 255,true);
public static NamedColor DarkOrchid = new NamedColor("Dark Orchid", 102, 105, 51, 255);
public static NamedColor DarkOrchid = new NamedColor("Dark Orchid", 102, 105, 51, 255,true);
public static NamedColor DarkRed = new NamedColor("Dark Red", 116, 255, 255, 255);
public static NamedColor DarkRed = new NamedColor("Dark Red", 116, 255, 255, 255,true);
public static NamedColor DarkSalmon = new NamedColor("Dark Salmon", 22, 105, 133, 255);
public static NamedColor DarkSalmon = new NamedColor("Dark Salmon", 22, 105, 133, 255,true);
public static NamedColor DarkSeaGreen = new NamedColor("Dark Sea Green", 112, 67, 112, 255);
public static NamedColor DarkSeaGreen = new NamedColor("Dark Sea Green", 112, 67, 112, 255,true);
public static NamedColor DarkSlateBlue = new NamedColor("Dark Slate Blue", 183, 194, 116, 255);
public static NamedColor DarkSlateBlue = new NamedColor("Dark Slate Blue", 183, 194, 116, 255,true);
public static NamedColor DarkSlateGray = new NamedColor("Dark Slate Gray", 208, 176, 176, 255);
public static NamedColor DarkSlateGray = new NamedColor("Dark Slate Gray", 208, 176, 176, 255,true);
public static NamedColor DarkTurquoise = new NamedColor("Dark Turquoise", 255, 49, 46, 255);
public static NamedColor DarkTurquoise = new NamedColor("Dark Turquoise", 255, 49, 46, 255,true);
public static NamedColor DarkViolet = new NamedColor("Dark Violet", 107, 255, 44, 255);
public static NamedColor DarkViolet = new NamedColor("Dark Violet", 107, 255, 44, 255,true);
public static NamedColor DeepPink = new NamedColor("Deep Pink", 0, 235, 108, 255);
public static NamedColor DeepPink = new NamedColor("Deep Pink", 0, 235, 108, 255,true);
public static NamedColor DeepSkyBlue = new NamedColor("Deep Sky Blue", 255, 64, 0, 255);
public static NamedColor DeepSkyBlue = new NamedColor("Deep Sky Blue", 255, 64, 0, 255,true);
public static NamedColor DimGray = new NamedColor("Dim Gray", 150, 150, 150, 255);
public static NamedColor DimGray = new NamedColor("Dim Gray", 150, 150, 150, 255,true);
public static NamedColor DodgerBlue = new NamedColor("Dodger Blue", 225, 111, 0, 255);
public static NamedColor DodgerBlue = new NamedColor("Dodger Blue", 225, 111, 0, 255,true);
public static NamedColor FireBrick = new NamedColor("FireBrick",77, 221, 221, 255);
public static NamedColor FireBrick = new NamedColor("FireBrick",77, 221, 221, 255,true);
public static NamedColor FloralWhite = new NamedColor("Floral White", 0, 5, 15, 255);
public static NamedColor FloralWhite = new NamedColor("Floral White", 0, 5, 15, 255,true);
public static NamedColor ForestGreen = new NamedColor("Forest Green", 221, 116, 221, 255);
public static NamedColor ForestGreen = new NamedColor("Forest Green", 221, 116, 221, 255,true);
public static NamedColor Fuchsia = new NamedColor("Fuchsia", 0, 255, 0, 255);
public static NamedColor Fuchsia = new NamedColor("Fuchsia", 0, 255, 0, 255,true);
/// <summary>More of a white-ish color</summary>
public static NamedColor Gainsboro = new NamedColor("Gainsboro", 35, 35, 35, 255);
public static NamedColor Gainsboro = new NamedColor("Gainsboro", 35, 35, 35, 255,true);
public static NamedColor GhostWhite = new NamedColor("Ghost White", 7, 7, 0);
public static NamedColor GhostWhite = new NamedColor("Ghost White", 7, 7, 0,255,true);
public static NamedColor Gold = new NamedColor("Gold", 0, 40, 255, 255);
public static NamedColor Gold = new NamedColor("Gold", 0, 40, 255, 255,true);
public static NamedColor GoldenRod = new NamedColor("Golden Rod", 37, 90, 223, 255);
public static NamedColor GoldenRod = new NamedColor("Golden Rod", 37, 90, 223, 255,true);
public static NamedColor Gray = new NamedColor("Gray", 127, 127, 127, 255);
public static NamedColor Gray = new NamedColor("Gray", 127, 127, 127, 255,true);
public static NamedColor Green = new NamedColor("Green", 255, 127, 255, 255);
public static NamedColor Green = new NamedColor("Green", 255, 127, 255, 255,true);
public static NamedColor GreenYellow = new NamedColor("Green Yellow", 82, 0, 208, 255);
public static NamedColor GreenYellow = new NamedColor("Green Yellow", 82, 0, 208, 255,true);
public static NamedColor HoneyDew = new NamedColor("Honey Dew", 15, 0, 15, 255);
public static NamedColor HoneyDew = new NamedColor("Honey Dew", 15, 0, 15, 255,true);
public static NamedColor HotPink = new NamedColor("Hot Pink", 0, 140, 75, 255);
public static NamedColor HotPink = new NamedColor("Hot Pink", 0, 140, 75, 255,true);
public static NamedColor IndianRed = new NamedColor("Indian Red", 40, 163, 163, 255);
public static NamedColor IndianRed = new NamedColor("Indian Red", 40, 163, 163, 255,true);
public static NamedColor Indigo = new NamedColor("Indigo", 180, 255, 125, 255);
public static NamedColor Indigo = new NamedColor("Indigo", 180, 255, 125, 255,true);
public static NamedColor Ivory = new NamedColor("Ivory", 0, 0, 15, 255);
public static NamedColor Ivory = new NamedColor("Ivory", 0, 0, 15, 255,true);
public static NamedColor Khaki = new NamedColor("Khaki", 15, 25, 115, 255);
public static NamedColor Khaki = new NamedColor("Khaki", 15, 25, 115, 255,true);
public static NamedColor Lavender = new NamedColor("Lavender", 25, 25, 5, 255);
public static NamedColor Lavender = new NamedColor("Lavender", 25, 25, 5, 255,true);
public static NamedColor LavenderBlush = new NamedColor("Lavender Blush", 0, 15, 10, 255);
public static NamedColor LavenderBlush = new NamedColor("Lavender Blush", 0, 15, 10, 255,true);
public static NamedColor LawnGreen = new NamedColor("Lawn Green", 131, 3, 255, 255);
public static NamedColor LawnGreen = new NamedColor("Lawn Green", 131, 3, 255, 255,true);
public static NamedColor LemonChiffron = new NamedColor("Lemon Chiffron", 0, 5, 50, 255);
public static NamedColor LemonChiffron = new NamedColor("Lemon Chiffron", 0, 5, 50, 255,true);
public static NamedColor LightBlue = new NamedColor("Light Blue",82, 39, 25, 255);
public static NamedColor LightBlue = new NamedColor("Light Blue",82, 39, 25, 255,true);
public static NamedColor LightCoral = new NamedColor("Light Coral", 15, 127, 127, 255);
public static NamedColor LightCoral = new NamedColor("Light Coral", 15, 127, 127, 255,true);
public static NamedColor LightCyan = new NamedColor("Light Cyan", 31, 0, 0, 255);
public static NamedColor LightCyan = new NamedColor("Light Cyan", 31, 0, 0, 255,true);
public static NamedColor LightGoldenRodYellow = new NamedColor("Light Goldenrod Yellow", 5, 5, 45, 255);
public static NamedColor LightGoldenRodYellow = new NamedColor("Light Goldenrod Yellow", 5, 5, 45, 255,true);
public static NamedColor LightGray = new NamedColor("Light Gray", 44, 44, 44, 255);
public static NamedColor LightGray = new NamedColor("Light Gray", 44, 44, 44, 255,true);
public static NamedColor LightGreen = new NamedColor("Light Green", 111, 17, 111, 255);
public static NamedColor LightGreen = new NamedColor("Light Green", 111, 17, 111, 255,true);
public static NamedColor LightPink = new NamedColor("Light Pink", 0, 73, 62, 255);
public static NamedColor LightPink = new NamedColor("Light Pink", 0, 73, 62, 255,true);
public static NamedColor LightSalmon = new NamedColor("Light Salmon", 0, 95, 133, 255);
public static NamedColor LightSalmon = new NamedColor("Light Salmon", 0, 95, 133, 255,true);
public static NamedColor LightSeaGreen = new NamedColor("Ligh tSea Green", 223, 77, 85, 255);
public static NamedColor LightSeaGreen = new NamedColor("Ligh tSea Green", 223, 77, 85, 255,true);
public static NamedColor LightSkyBlue = new NamedColor("Light Sky Blue", 120, 49, 5, 255);
public static NamedColor LightSkyBlue = new NamedColor("Light Sky Blue", 120, 49, 5, 255,true);
public static NamedColor LightSlateGray = new NamedColor("Light Slate Gray", 146, 119, 102, 255);
public static NamedColor LightSlateGray = new NamedColor("Light Slate Gray", 146, 119, 102, 255,true);
public static NamedColor LightSteelBlue = new NamedColor("Light Steel Blue", 79, 59, 33, 255);
public static NamedColor LightSteelBlue = new NamedColor("Light Steel Blue", 79, 59, 33, 255,true);
public static NamedColor LightYellow = new NamedColor("Light Yellow", 0, 0, 31, 255);
public static NamedColor LightYellow = new NamedColor("Light Yellow", 0, 0, 31, 255,true);
public static NamedColor Lime = new NamedColor("Lime", 255, 0, 255, 255);
public static NamedColor Lime = new NamedColor("Lime", 255, 0, 255, 255,true);
public static NamedColor LimeGreen = new NamedColor("Lime Green", 105, 50, 105, 255);
public static NamedColor LimeGreen = new NamedColor("Lime Green", 105, 50, 105, 255,true);
public static NamedColor Linen = new NamedColor("Linen", 5, 15, 25, 255);
public static NamedColor Linen = new NamedColor("Linen", 5, 15, 25, 255,true);
public static NamedColor Magenta = new NamedColor("Magenta", 0, 255, 0, 255);
public static NamedColor Magenta = new NamedColor("Magenta", 0, 255, 0, 255,true);
public static NamedColor Maroon = new NamedColor("Maroon", 127, 255, 255, 0);
public static NamedColor Maroon = new NamedColor("Maroon", 127, 255, 255, 0,true);
public static NamedColor MediumAquaMarine = new NamedColor("Medium Aqua Marine", 153, 50, 85, 255);
public static NamedColor MediumAquaMarine = new NamedColor("Medium Aqua Marine", 153, 50, 85, 255,true);
public static NamedColor MediumBlue = new NamedColor("Medium Blue",255, 255, 50, 255);
public static NamedColor MediumBlue = new NamedColor("Medium Blue",255, 255, 50, 255,true);
public static NamedColor MediumOrchid = new NamedColor("Medium Orchid", 69, 170, 44, 255);
public static NamedColor MediumOrchid = new NamedColor("Medium Orchid", 69, 170, 44, 255,true);
public static NamedColor MediumPurple = new NamedColor("Medium Purple", 108, 143, 36, 255);
public static NamedColor MediumPurple = new NamedColor("Medium Purple", 108, 143, 36, 255,true);
public static NamedColor MediumSeaGreen = new NamedColor("Medium Sea Green", 195, 78, 142, 255);
public static NamedColor MediumSeaGreen = new NamedColor("Medium Sea Green", 195, 78, 142, 255,true);
public static NamedColor MediumSlateBlue = new NamedColor("Medium Slate Blue", 132, 151, 17, 255);
public static NamedColor MediumSlateBlue = new NamedColor("Medium Slate Blue", 132, 151, 17, 255,true);
public static NamedColor MediumSpringGreen = new NamedColor("Medium Spring Green", 255, 5, 101, 255);
public static NamedColor MediumSpringGreen = new NamedColor("Medium Spring Green", 255, 5, 101, 255,true);
public static NamedColor MediumTurquoise = new NamedColor("Medium Turquoise", 183, 46, 51, 255);
public static NamedColor MediumTurquoise = new NamedColor("Medium Turquoise", 183, 46, 51, 255,true);
public static NamedColor MediumVioletRed = new NamedColor("Medium Violet Red", 46, 234, 122, 255);
public static NamedColor MediumVioletRed = new NamedColor("Medium Violet Red", 46, 234, 122, 255,true);
public static NamedColor MidnightBlue = new NamedColor("Midnight Blue", 230, 230, 143, 255);
public static NamedColor MidnightBlue = new NamedColor("Midnight Blue", 230, 230, 143, 255,true);
public static NamedColor MintCream = new NamedColor("Mint Cream", 10, 0, 5, 255);
public static NamedColor MintCream = new NamedColor("Mint Cream", 10, 0, 5, 255,true);
public static NamedColor MistyRose = new NamedColor("Misty Rose", 0, 27, 30, 255);
public static NamedColor MistyRose = new NamedColor("Misty Rose", 0, 27, 30, 255,true);
public static NamedColor Moccasin = new NamedColor("Moccasin", 0, 33, 82, 255);
public static NamedColor Moccasin = new NamedColor("Moccasin", 0, 33, 82, 255,true);
public static NamedColor NavajoWhite = new NamedColor("Navajo White", 0, 33, 82, 255);
public static NamedColor NavajoWhite = new NamedColor("Navajo White", 0, 33, 82, 255,true);
public static NamedColor Navy = new NamedColor("Navy", 255, 255, 127, 255);
public static NamedColor Navy = new NamedColor("Navy", 255, 255, 127, 255,true);
public static NamedColor OldLace = new NamedColor("Old Lace", 2, 10, 25, 255);
public static NamedColor OldLace = new NamedColor("Old Lace", 2, 10, 25, 255,true);
public static NamedColor Olive = new NamedColor("Olive", 127, 127, 255, 255);
public static NamedColor Olive = new NamedColor("Olive", 127, 127, 255, 255,true);
public static NamedColor OliveDrab = new NamedColor("Olive Drab", 148, 113, 220, 255);
public static NamedColor OliveDrab = new NamedColor("Olive Drab", 148, 113, 220, 255,true);
public static NamedColor Orange = new NamedColor("Orange", 0, 90, 255, 255);
public static NamedColor Orange = new NamedColor("Orange", 0, 90, 255, 255,true);
public static NamedColor OrangeRed = new NamedColor("Orange Red", 0, 186, 255, 255);
public static NamedColor OrangeRed = new NamedColor("Orange Red", 0, 186, 255, 255,true);
public static NamedColor Orchid = new NamedColor("Orchid", 37, 143, 41, 255);
public static NamedColor Orchid = new NamedColor("Orchid", 37, 143, 41, 255,true);
public static NamedColor PaleGoldenRod = new NamedColor("Pale Golden Rod", 17, 23, 85, 255);
public static NamedColor PaleGoldenRod = new NamedColor("Pale Golden Rod", 17, 23, 85, 255,true);
public static NamedColor PaleGreen = new NamedColor("Pale Green", 103, 4, 103, 255);
public static NamedColor PaleGreen = new NamedColor("Pale Green", 103, 4, 103, 255,true);
public static NamedColor PaleTurquoise = new NamedColor("Pale Turquoise", 80, 17, 17, 255);
public static NamedColor PaleTurquoise = new NamedColor("Pale Turquoise", 80, 17, 17, 255,true);
public static NamedColor PaleVioletRed = new NamedColor("Pale Violet Red", 36, 143, 108, 255);
public static NamedColor PaleVioletRed = new NamedColor("Pale Violet Red", 36, 143, 108, 255,true);
public static NamedColor PapayaWhip = new NamedColor("Papaya Whip", 0, 16, 42, 255);
public static NamedColor PapayaWhip = new NamedColor("Papaya Whip", 0, 16, 42, 255,true);
public static NamedColor PeachPuff = new NamedColor("Peach Puff", 0, 37, 70, 255);
public static NamedColor PeachPuff = new NamedColor("Peach Puff", 0, 37, 70, 255,true);
public static NamedColor Peru = new NamedColor("Peru", 50, 122, 192, 255);
public static NamedColor Peru = new NamedColor("Peru", 50, 122, 192, 255,true);
public static NamedColor Pink = new NamedColor("Pink", 0, 63, 52, 255);
public static NamedColor Pink = new NamedColor("Pink", 0, 63, 52, 255,true);
public static NamedColor Plum = new NamedColor("Plum", 34, 95, 34, 255);
public static NamedColor Plum = new NamedColor("Plum", 34, 95, 34, 255,true);
public static NamedColor PowderBlue = new NamedColor("Powder Blue", 79, 31, 25, 255);
public static NamedColor PowderBlue = new NamedColor("Powder Blue", 79, 31, 25, 255,true);
public static NamedColor Purple = new NamedColor("Purple", 127, 255, 127, 255);
public static NamedColor Purple = new NamedColor("Purple", 127, 255, 127, 255,true);
public static NamedColor RebeccaPurple = new NamedColor("Rebecca Purple", 153, 104, 102, 255);
public static NamedColor RebeccaPurple = new NamedColor("Rebecca Purple", 153, 104, 102, 255,true);
public static NamedColor Red = new NamedColor("Red", 0, 255, 255, 255);
public static NamedColor Red = new NamedColor("Red", 0, 255, 255, 255,true);
public static NamedColor RosyBrown = new NamedColor("Rosy Brown", 67, 112, 112, 255);
public static NamedColor RosyBrown = new NamedColor("Rosy Brown", 67, 112, 112, 255,true);
public static NamedColor RoyalBlue = new NamedColor("Royal Blue", 190, 150, 30, 255);
public static NamedColor RoyalBlue = new NamedColor("Royal Blue", 190, 150, 30, 255,true);
public static NamedColor SaddleBrown = new NamedColor("Saddle Brown", 115, 186, 231, 255);
public static NamedColor SaddleBrown = new NamedColor("Saddle Brown", 115, 186, 231, 255,true);
public static NamedColor Salmon = new NamedColor("Salmon", 5, 127, 141, 255);
public static NamedColor Salmon = new NamedColor("Salmon", 5, 127, 141, 255,true);
public static NamedColor SandyBrown = new NamedColor("Sandy Brown", 11, 91, 159, 255);
public static NamedColor SandyBrown = new NamedColor("Sandy Brown", 11, 91, 159, 255,true);
public static NamedColor SeaGreen = new NamedColor("Sea Green", 209, 116, 168, 255);
public static NamedColor SeaGreen = new NamedColor("Sea Green", 209, 116, 168, 255,true);
public static NamedColor SeaShell = new NamedColor("Sea Shell", 0, 10, 17, 255);
public static NamedColor SeaShell = new NamedColor("Sea Shell", 0, 10, 17, 255,true);
public static NamedColor Sienna = new NamedColor("Sienna", 95, 173, 210, 255);
public static NamedColor Sienna = new NamedColor("Sienna", 95, 173, 210, 255,true);
public static NamedColor Silver = new NamedColor("Silver", 63, 63, 63, 255);
public static NamedColor Silver = new NamedColor("Silver", 63, 63, 63, 255,true);
public static NamedColor SkyBlue = new NamedColor("Sky Blue", 120, 49, 20, 255);
public static NamedColor SkyBlue = new NamedColor("Sky Blue", 120, 49, 20, 255,true);
public static NamedColor SlateBlue = new NamedColor("Slate Blue", 149, 165, 50, 255);
public static NamedColor SlateBlue = new NamedColor("Slate Blue", 149, 165, 50, 255,true);
public static NamedColor SlateGray = new NamedColor("Slate Gray", 143, 127, 111, 255);
public static NamedColor SlateGray = new NamedColor("Slate Gray", 143, 127, 111, 255,true);
public static NamedColor Snow = new NamedColor("Snow", 0, 5, 5, 255);
public static NamedColor Snow = new NamedColor("Snow", 0, 5, 5, 255,true);
public static NamedColor SpringGreen = new NamedColor("Spring Green", 255, 0, 128, 255);
public static NamedColor SpringGreen = new NamedColor("Spring Green", 255, 0, 128, 255,true);
public static NamedColor SteelBlue = new NamedColor("Steel Blue", 185, 125, 75, 255);
public static NamedColor SteelBlue = new NamedColor("Steel Blue", 185, 125, 75, 255,true);
public static NamedColor Tan = new NamedColor("Tan", 45, 75, 115, 255);
public static NamedColor Tan = new NamedColor("Tan", 45, 75, 115, 255,true);
public static NamedColor Teal = new NamedColor("Teal", 255, 127, 127, 255);
public static NamedColor Teal = new NamedColor("Teal", 255, 127, 127, 255,true);
public static NamedColor Thistle = new NamedColor("Thistle", 39, 64, 39, 255);
public static NamedColor Thistle = new NamedColor("Thistle", 39, 64, 39, 255,true);
public static NamedColor Tomato = new NamedColor("Tomato", 0, 156, 184, 255);
public static NamedColor Tomato = new NamedColor("Tomato", 0, 156, 184, 255,true);
public static NamedColor Turquoise = new NamedColor("Turquoise", 191, 31, 47, 255);
public static NamedColor Turquoise = new NamedColor("Turquoise", 191, 31, 47, 255,true);
public static NamedColor Violet = new NamedColor("Violet", 17, 125, 17, 255);
public static NamedColor Violet = new NamedColor("Violet", 17, 125, 17, 255,true);
public static NamedColor Wheat = new NamedColor("Wheat", 10, 33, 76, 255);
public static NamedColor Wheat = new NamedColor("Wheat", 10, 33, 76, 255,true);
public static NamedColor White = new NamedColor("White", 0, 0, 0, 255);
public static NamedColor White = new NamedColor("White", 0, 0, 0, 255,true);
public static NamedColor WhiteSmoke = new NamedColor("White Smoke", 10, 10, 10, 255);
public static NamedColor WhiteSmoke = new NamedColor("White Smoke", 10, 10, 10, 255,true);
public static NamedColor Yellow = new NamedColor("Yellow", 0, 0, 255);
public static NamedColor Yellow = new NamedColor("Yellow", 0, 0, 255,255,true);
public static NamedColor YellowGreen = new NamedColor("Yellow Green", 101, 50, 205, 255);
public static NamedColor YellowGreen = new NamedColor("Yellow Green", 101, 50, 205, 255,true);
}
}

View File

@ -29,10 +29,14 @@ namespace Revitalize.Framework.Illuminate
this.color = Color;
}
public NamedColor(string Name, int r, int g, int b, int a = 255)
public NamedColor(string Name, int r, int g, int b, int a = 255, bool Invert=false)
{
this.name = Name;
this.color = new Color(r, g, b, a);
if (Invert)
{
this.color = this.color.Invert();
}
}
public Color getColor()

View File

@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
namespace Revitalize.Framework.Managers
{
public class ColorManager
{
/// <summary>
/// The color blending mode for this color manager.
/// </summary>
private Enums.DyeBlendMode _colorMixMode;
public Enums.DyeBlendMode ColorMixMode
{
get
{
return this._colorMixMode;
}
set
{
this._colorMixMode = value;
this.requiresUpdate = true;
}
}
/// <summary>
/// The amount of influence the first color has on the mix for the object.
/// </summary>
private double _blendInfluence;
public double BlendInfluence
{
get
{
return this._blendInfluence;
}
set
{
this._blendInfluence = value;
this.requiresUpdate = true;
}
}
/// <summary>
/// Does this ColorManager require a sync update.
/// </summary>
public bool requiresUpdate;
public ColorManager()
{
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="DyeBlendMode"></param>
public ColorManager(Enums.DyeBlendMode DyeBlendMode,double BlendInfluence=0d)
{
this._colorMixMode = DyeBlendMode;
this._blendInfluence = BlendInfluence;
}
/// <summary>
/// Constructor which loosely enforeces the color blend mode to be a mixed blend but only requires a influence parameter.
/// </summary>
/// <param name="BlendInfluence"></param>
/// <param name="DyeBlendMode"></param>
public ColorManager(double BlendInfluence, Enums.DyeBlendMode DyeBlendMode=Enums.DyeBlendMode.Blend)
{
this._colorMixMode = DyeBlendMode;
this._blendInfluence = BlendInfluence;
}
public Color getBlendedColor(Color self, Color other,int Alpha=255)
{
//Used as reference.
//https://stackoverflow.com/questions/3722307/is-there-an-easy-way-to-blend-two-system-drawing-color-values
if (this._colorMixMode== Enums.DyeBlendMode.Blend)
{
int r =(int)(self.R * this._blendInfluence + other.R * (1 - this._blendInfluence));
int g = (int)(self.G * this._blendInfluence + other.G * (1 - this._blendInfluence));
int b = (int)(self.B * this._blendInfluence + other.B * (1 - this._blendInfluence));
return new Color(r, g, b, Alpha);
}
if(this._colorMixMode== Enums.DyeBlendMode.Average)
{
return new Color((self.R + other.R) / 2, (self.G + other.G) / 2, (self.B + other.B) / 2, Alpha);
}
if(this._colorMixMode== Enums.DyeBlendMode.Multiplier)
{
return new Color(self.R * other.R, self.G * other.G,self.B * other.B, Alpha);
}
return self;
}
}
}

View File

@ -8,6 +8,7 @@ using Revitalize.Framework.Utilities;
using StardewValley;
using StardustCore.UIUtilities;
using Newtonsoft.Json;
using Revitalize.Framework.Managers;
namespace Revitalize.Framework.Objects
{
@ -228,7 +229,9 @@ namespace Revitalize.Framework.Objects
{
if (this._dyedColor.color.A != 0)
{
return new Color(this._drawColor.R * this._dyedColor.color.R, this._drawColor.G * this._dyedColor.color.G, this._drawColor.B * this._dyedColor.color.B, 255);
return this._colorManager.getBlendedColor(this._drawColor, this._dyedColor.color);
//return new Color( (this._drawColor.R + this._dyedColor.color.R)/2, (this._drawColor.G + this._dyedColor.color.G)/2, (this._drawColor.B + this._dyedColor.color.B)/2, 255);
//return new Color(this._drawColor.R * this._dyedColor.color.R, this._drawColor.G * this._dyedColor.color.G, this._drawColor.B * this._dyedColor.color.B, 255);
}
}
}
@ -357,6 +360,21 @@ namespace Revitalize.Framework.Objects
}
public ColorManager _colorManager;
public ColorManager ColorManager
{
get
{
return this._colorManager;
}
set
{
this._colorManager = value;
this.requiresUpdate = true;
}
}
[JsonIgnore]
public bool requiresUpdate;
public BasicItemInformation()
@ -383,7 +401,7 @@ namespace Revitalize.Framework.Objects
this._alwaysDrawAbovePlayer = false;
}
public BasicItemInformation(string name, string id, string description, string categoryName, Color categoryColor,int edibility, int fragility, bool isLamp, int price, bool canBeSetOutdoors, bool canBeSetIndoors, Texture2D texture, AnimationManager animationManager, Color drawColor, bool ignoreBoundingBox, InventoryManager Inventory, LightManager Lights,Energy.EnergyManager EnergyManager=null,bool AlwaysDrawAbovePlayer=false,NamedColor DyedColor=null)
public BasicItemInformation(string name, string id, string description, string categoryName, Color categoryColor,int edibility, int fragility, bool isLamp, int price, bool canBeSetOutdoors, bool canBeSetIndoors, Texture2D texture, AnimationManager animationManager, Color drawColor, bool ignoreBoundingBox, InventoryManager Inventory, LightManager Lights,Energy.EnergyManager EnergyManager=null,bool AlwaysDrawAbovePlayer=false,NamedColor DyedColor=null, ColorManager ColorManager=null)
{
this.name = name;
this.id = id;
@ -416,7 +434,8 @@ namespace Revitalize.Framework.Objects
this.EnergyManager = EnergyManager ?? new Energy.EnergyManager();
this.AlwaysDrawAbovePlayer = AlwaysDrawAbovePlayer;
this.DyedColor = DyedColor ?? new NamedColor("", new Color(0, 0, 0, 0));
this.ColorManager = ColorManager ?? new ColorManager(Enums.DyeBlendMode.Blend, 0.5f);
}
/// <summary>
@ -434,7 +453,7 @@ namespace Revitalize.Framework.Objects
/// <returns></returns>
public BasicItemInformation Copy()
{
return new BasicItemInformation(this.name, this.id,this.description, this.categoryName, this.categoryColor, this.edibility, this.fragility, this.isLamp, this.price, this.canBeSetOutdoors, this.canBeSetIndoors, this.animationManager.getTexture(), this.animationManager, this.DrawColor, this.ignoreBoundingBox, this._inventory.Copy(), this._lightManager.Copy(),this._energyManager.Copy(),this.AlwaysDrawAbovePlayer,this.DyedColor);
return new BasicItemInformation(this.name, this.id,this.description, this.categoryName, this.categoryColor, this.edibility, this.fragility, this.isLamp, this.price, this.canBeSetOutdoors, this.canBeSetIndoors, this.animationManager.getTexture(), this.animationManager, this.DrawColor, this.ignoreBoundingBox, this._inventory.Copy(), this._lightManager.Copy(),this._energyManager.Copy(),this.AlwaysDrawAbovePlayer,this.DyedColor,this.ColorManager);
}
public bool requiresSyncUpdate()

View File

@ -720,6 +720,16 @@ namespace Revitalize.Framework.Objects
this.info.DyedColor = new NamedColor("", new Color(0, 0, 0, 0));
}
public override bool canStackWith(Item other)
{
CustomObject o = (CustomObject)other;
if (this.info.DyedColor != o.info.DyedColor) return false;
if (this.info.EnergyManager.remainingEnergy != o.info.EnergyManager.remainingEnergy) return false;
return base.canStackWith(other);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~//
// PyTk Functions //
//~~~~~~~~~~~~~~~~~~~~~~~~~//

View File

@ -86,6 +86,7 @@
<Compile Include="Framework\Illuminate\FakeLightSource.cs" />
<Compile Include="Framework\Illuminate\LightManager.cs" />
<Compile Include="Framework\Illuminate\NamedColor.cs" />
<Compile Include="Framework\Managers\ColorManager.cs" />
<Compile Include="Framework\Menus\CraftingInformationPage.cs" />
<Compile Include="Framework\Menus\CraftingMenuV1.cs" />
<Compile Include="Framework\Menus\Machines\MachineMenu.cs" />