mirror of https://github.com/ppy/osu
183 lines
8.2 KiB
C#
183 lines
8.2 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using System;
|
|
using osu.Game.Beatmaps;
|
|
using osuTK.Graphics;
|
|
|
|
namespace osu.Game.Graphics
|
|
{
|
|
public class OsuColour
|
|
{
|
|
public static Color4 Gray(float amt) => new Color4(amt, amt, amt, 1f);
|
|
public static Color4 Gray(byte amt) => new Color4(amt, amt, amt, 255);
|
|
|
|
public static Color4 FromHex(string hex)
|
|
{
|
|
if (hex[0] == '#')
|
|
hex = hex.Substring(1);
|
|
|
|
switch (hex.Length)
|
|
{
|
|
default:
|
|
throw new ArgumentException(@"Invalid hex string length!");
|
|
|
|
case 3:
|
|
return new Color4(
|
|
(byte)(Convert.ToByte(hex.Substring(0, 1), 16) * 17),
|
|
(byte)(Convert.ToByte(hex.Substring(1, 1), 16) * 17),
|
|
(byte)(Convert.ToByte(hex.Substring(2, 1), 16) * 17),
|
|
255);
|
|
|
|
case 6:
|
|
return new Color4(
|
|
Convert.ToByte(hex.Substring(0, 2), 16),
|
|
Convert.ToByte(hex.Substring(2, 2), 16),
|
|
Convert.ToByte(hex.Substring(4, 2), 16),
|
|
255);
|
|
|
|
case 4:
|
|
return new Color4(
|
|
(byte)(Convert.ToByte(hex.Substring(0, 1), 16) * 17),
|
|
(byte)(Convert.ToByte(hex.Substring(1, 1), 16) * 17),
|
|
(byte)(Convert.ToByte(hex.Substring(2, 1), 16) * 17),
|
|
(byte)(Convert.ToByte(hex.Substring(3, 1), 16) * 17));
|
|
|
|
case 8:
|
|
return new Color4(
|
|
Convert.ToByte(hex.Substring(0, 2), 16),
|
|
Convert.ToByte(hex.Substring(2, 2), 16),
|
|
Convert.ToByte(hex.Substring(4, 2), 16),
|
|
Convert.ToByte(hex.Substring(6, 2), 16));
|
|
}
|
|
}
|
|
|
|
public Color4 ForDifficultyRating(DifficultyRating difficulty, bool useLighterColour = false)
|
|
{
|
|
switch (difficulty)
|
|
{
|
|
case DifficultyRating.Easy:
|
|
return Green;
|
|
|
|
default:
|
|
case DifficultyRating.Normal:
|
|
return Blue;
|
|
|
|
case DifficultyRating.Hard:
|
|
return Yellow;
|
|
|
|
case DifficultyRating.Insane:
|
|
return Pink;
|
|
|
|
case DifficultyRating.Expert:
|
|
return useLighterColour ? PurpleLight : Purple;
|
|
|
|
case DifficultyRating.ExpertPlus:
|
|
return useLighterColour ? Gray9 : Gray0;
|
|
}
|
|
}
|
|
|
|
// See https://github.com/ppy/osu-web/blob/master/resources/assets/less/colors.less
|
|
public readonly Color4 PurpleLighter = FromHex(@"eeeeff");
|
|
public readonly Color4 PurpleLight = FromHex(@"aa88ff");
|
|
public readonly Color4 PurpleLightAlternative = FromHex(@"cba4da");
|
|
public readonly Color4 Purple = FromHex(@"8866ee");
|
|
public readonly Color4 PurpleDark = FromHex(@"6644cc");
|
|
public readonly Color4 PurpleDarkAlternative = FromHex(@"312436");
|
|
public readonly Color4 PurpleDarker = FromHex(@"441188");
|
|
|
|
public readonly Color4 PinkLighter = FromHex(@"ffddee");
|
|
public readonly Color4 PinkLight = FromHex(@"ff99cc");
|
|
public readonly Color4 Pink = FromHex(@"ff66aa");
|
|
public readonly Color4 PinkDark = FromHex(@"cc5288");
|
|
public readonly Color4 PinkDarker = FromHex(@"bb1177");
|
|
|
|
public readonly Color4 BlueLighter = FromHex(@"ddffff");
|
|
public readonly Color4 BlueLight = FromHex(@"99eeff");
|
|
public readonly Color4 Blue = FromHex(@"66ccff");
|
|
public readonly Color4 BlueDark = FromHex(@"44aadd");
|
|
public readonly Color4 BlueDarker = FromHex(@"2299bb");
|
|
|
|
public readonly Color4 YellowLighter = FromHex(@"ffffdd");
|
|
public readonly Color4 YellowLight = FromHex(@"ffdd55");
|
|
public readonly Color4 Yellow = FromHex(@"ffcc22");
|
|
public readonly Color4 YellowDark = FromHex(@"eeaa00");
|
|
public readonly Color4 YellowDarker = FromHex(@"cc6600");
|
|
|
|
public readonly Color4 GreenLighter = FromHex(@"eeffcc");
|
|
public readonly Color4 GreenLight = FromHex(@"b3d944");
|
|
public readonly Color4 Green = FromHex(@"88b300");
|
|
public readonly Color4 GreenDark = FromHex(@"668800");
|
|
public readonly Color4 GreenDarker = FromHex(@"445500");
|
|
|
|
public readonly Color4 Sky = FromHex(@"6bb5ff");
|
|
public readonly Color4 GreySkyLighter = FromHex(@"c6e3f4");
|
|
public readonly Color4 GreySkyLight = FromHex(@"8ab3cc");
|
|
public readonly Color4 GreySky = FromHex(@"405461");
|
|
public readonly Color4 GreySkyDark = FromHex(@"303d47");
|
|
public readonly Color4 GreySkyDarker = FromHex(@"21272c");
|
|
|
|
public readonly Color4 Seafoam = FromHex(@"05ffa2");
|
|
public readonly Color4 GreySeafoamLighter = FromHex(@"9ebab1");
|
|
public readonly Color4 GreySeafoamLight = FromHex(@"4d7365");
|
|
public readonly Color4 GreySeafoam = FromHex(@"33413c");
|
|
public readonly Color4 GreySeafoamDark = FromHex(@"2c3532");
|
|
public readonly Color4 GreySeafoamDarker = FromHex(@"1e2422");
|
|
|
|
public readonly Color4 Cyan = FromHex(@"05f4fd");
|
|
public readonly Color4 GreyCyanLighter = FromHex(@"77b1b3");
|
|
public readonly Color4 GreyCyanLight = FromHex(@"436d6f");
|
|
public readonly Color4 GreyCyan = FromHex(@"293d3e");
|
|
public readonly Color4 GreyCyanDark = FromHex(@"243536");
|
|
public readonly Color4 GreyCyanDarker = FromHex(@"1e2929");
|
|
|
|
public readonly Color4 Lime = FromHex(@"82ff05");
|
|
public readonly Color4 GreyLimeLighter = FromHex(@"deff87");
|
|
public readonly Color4 GreyLimeLight = FromHex(@"657259");
|
|
public readonly Color4 GreyLime = FromHex(@"3f443a");
|
|
public readonly Color4 GreyLimeDark = FromHex(@"32352e");
|
|
public readonly Color4 GreyLimeDarker = FromHex(@"2e302b");
|
|
|
|
public readonly Color4 Violet = FromHex(@"bf04ff");
|
|
public readonly Color4 GreyVioletLighter = FromHex(@"ebb8fe");
|
|
public readonly Color4 GreyVioletLight = FromHex(@"685370");
|
|
public readonly Color4 GreyViolet = FromHex(@"46334d");
|
|
public readonly Color4 GreyVioletDark = FromHex(@"2c2230");
|
|
public readonly Color4 GreyVioletDarker = FromHex(@"201823");
|
|
|
|
public readonly Color4 Carmine = FromHex(@"ff0542");
|
|
public readonly Color4 GreyCarmineLighter = FromHex(@"deaab4");
|
|
public readonly Color4 GreyCarmineLight = FromHex(@"644f53");
|
|
public readonly Color4 GreyCarmine = FromHex(@"342b2d");
|
|
public readonly Color4 GreyCarmineDark = FromHex(@"302a2b");
|
|
public readonly Color4 GreyCarmineDarker = FromHex(@"241d1e");
|
|
|
|
public readonly Color4 Gray0 = FromHex(@"000");
|
|
public readonly Color4 Gray1 = FromHex(@"111");
|
|
public readonly Color4 Gray2 = FromHex(@"222");
|
|
public readonly Color4 Gray3 = FromHex(@"333");
|
|
public readonly Color4 Gray4 = FromHex(@"444");
|
|
public readonly Color4 Gray5 = FromHex(@"555");
|
|
public readonly Color4 Gray6 = FromHex(@"666");
|
|
public readonly Color4 Gray7 = FromHex(@"777");
|
|
public readonly Color4 Gray8 = FromHex(@"888");
|
|
public readonly Color4 Gray9 = FromHex(@"999");
|
|
public readonly Color4 GrayA = FromHex(@"aaa");
|
|
public readonly Color4 GrayB = FromHex(@"bbb");
|
|
public readonly Color4 GrayC = FromHex(@"ccc");
|
|
public readonly Color4 GrayD = FromHex(@"ddd");
|
|
public readonly Color4 GrayE = FromHex(@"eee");
|
|
public readonly Color4 GrayF = FromHex(@"fff");
|
|
|
|
public readonly Color4 RedLighter = FromHex(@"ffeded");
|
|
public readonly Color4 RedLight = FromHex(@"ed7787");
|
|
public readonly Color4 Red = FromHex(@"ed1121");
|
|
public readonly Color4 RedDark = FromHex(@"ba0011");
|
|
public readonly Color4 RedDarker = FromHex(@"870000");
|
|
|
|
public readonly Color4 ChatBlue = FromHex(@"17292e");
|
|
|
|
public readonly Color4 ContextMenuGray = FromHex(@"223034");
|
|
}
|
|
}
|