using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StardustCore.Math
{
///
/// A Class that helps represents 32 bit hex.
///
class Hex32 : Hex
{
///
/// A default constructor.
///
public Hex32()
{
this.hexValue = "0x00000000";
}
///
/// Constructor.
///
/// A string in hex representation. Ex) 0x00000000
public Hex32(string hexValue)
{
this.hexValue = hexValue;
if (verifyHexLength() == false) this.hexValue = "0x00000000";
}
///
/// Constructor.
///
/// An int to be converted into Hex.
public Hex32(int value)
{
this.hexValue= value.ToString("X");
if (verifyHexLength() == false) this.hexValue = "0x00000000";
}
///
/// Makes sure the hex value is the appropriate length.
///
///
public override bool verifyHexLength()
{
if (this.hexValue.Length != 10) return false;
else return true;
}
///
/// Trims the hex to get rid of the leading 0x;
///
///
public override string trimHex()
{
return base.trimHex();
}
///
/// Converts a hex value to a string.
///
///
public Color toColor()
{
var bytes = getBytes();
int red = convertHexByteTo255Int(bytes[0]);
int green = convertHexByteTo255Int(bytes[1]);
int blue = convertHexByteTo255Int(bytes[2]);
int alpha = convertHexByteTo255Int(bytes[3]);
return new Color(red, green, blue, alpha);
}
///
/// Get the individual byte strings associated with this hex value.
///
///
public override List getBytes()
{
List bytes = new List();
bytes.Add(getByte(0));
bytes.Add(getByte(1));
bytes.Add(getByte(2));
bytes.Add(getByte(3));
return bytes;
}
}
}