94 lines
3.6 KiB
C#
94 lines
3.6 KiB
C#
#region Copyright & License Information
|
|
/*
|
|
* Copyright 2007-2020 The OpenRA Developers (see AUTHORS)
|
|
* This file is part of OpenRA, which is free software. It is made
|
|
* available to you under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation, either version 3 of
|
|
* the License, or (at your option) any later version. For more
|
|
* information, see COPYING.
|
|
*/
|
|
#endregion
|
|
|
|
using Eluant;
|
|
using OpenRA.Graphics;
|
|
using OpenRA.Primitives;
|
|
using OpenRA.Scripting;
|
|
|
|
namespace OpenRA.Mods.Common.Scripting.Global
|
|
{
|
|
// Kept as HSLColor for backwards compatibility
|
|
[ScriptGlobal("HSLColor")]
|
|
public class ColorGlobal : ScriptGlobal
|
|
{
|
|
public ColorGlobal(ScriptContext context)
|
|
: base(context) { }
|
|
|
|
[Desc("Create a new color with the specified hue/saturation/luminosity.")]
|
|
public Color New(int hue, int saturation, int luminosity)
|
|
{
|
|
var h = (byte)hue.Clamp(0, 255);
|
|
var s = (byte)saturation.Clamp(0, 255);
|
|
var l = (byte)luminosity.Clamp(0, 255);
|
|
|
|
return Color.FromAhsl(h, s, l);
|
|
}
|
|
|
|
[Desc("Create a new color with the specified red/green/blue/[alpha] values.")]
|
|
public Color FromRGB(int red, int green, int blue, int alpha = 255)
|
|
{
|
|
return Color.FromArgb(
|
|
alpha.Clamp(0, 255),
|
|
red.Clamp(0, 255),
|
|
green.Clamp(0, 255),
|
|
blue.Clamp(0, 255));
|
|
}
|
|
|
|
[Desc("Create a new color with the specified red/green/blue/[alpha] hex string (rrggbb[aa]).")]
|
|
public Color FromHex(string value)
|
|
{
|
|
Color color;
|
|
if (Color.TryParse(value, out color))
|
|
return color;
|
|
|
|
throw new LuaException("Invalid rrggbb[aa] hex string.");
|
|
}
|
|
|
|
public Color Aqua { get { return Color.Aqua; } }
|
|
public Color Black { get { return Color.Black; } }
|
|
public Color Blue { get { return Color.Blue; } }
|
|
public Color Brown { get { return Color.Brown; } }
|
|
public Color Cyan { get { return Color.Cyan; } }
|
|
public Color DarkBlue { get { return Color.DarkBlue; } }
|
|
public Color DarkCyan { get { return Color.DarkCyan; } }
|
|
public Color DarkGray { get { return Color.DarkGray; } }
|
|
public Color DarkGreen { get { return Color.DarkGreen; } }
|
|
public Color DarkOrange { get { return Color.DarkOrange; } }
|
|
public Color DarkRed { get { return Color.DarkRed; } }
|
|
public Color Fuchsia { get { return Color.Fuchsia; } }
|
|
public Color Gold { get { return Color.Gold; } }
|
|
public Color Gray { get { return Color.Gray; } }
|
|
public Color Green { get { return Color.Green; } }
|
|
public Color LawnGreen { get { return Color.LawnGreen; } }
|
|
public Color LightBlue { get { return Color.LightBlue; } }
|
|
public Color LightCyan { get { return Color.LightCyan; } }
|
|
public Color LightGray { get { return Color.LightGray; } }
|
|
public Color LightGreen { get { return Color.LightGreen; } }
|
|
public Color LightYellow { get { return Color.LightYellow; } }
|
|
public Color Lime { get { return Color.Lime; } }
|
|
public Color LimeGreen { get { return Color.LimeGreen; } }
|
|
public Color Magenta { get { return Color.Magenta; } }
|
|
public Color Maroon { get { return Color.Maroon; } }
|
|
public Color Navy { get { return Color.Navy; } }
|
|
public Color Olive { get { return Color.Olive; } }
|
|
public Color Orange { get { return Color.Orange; } }
|
|
public Color OrangeRed { get { return Color.OrangeRed; } }
|
|
public Color Purple { get { return Color.Purple; } }
|
|
public Color Red { get { return Color.Red; } }
|
|
public Color Salmon { get { return Color.Salmon; } }
|
|
public Color SkyBlue { get { return Color.SkyBlue; } }
|
|
public Color Teal { get { return Color.Teal; } }
|
|
public Color Yellow { get { return Color.Yellow; } }
|
|
public Color White { get { return Color.White; } }
|
|
}
|
|
}
|