Files
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

116 lines
2.3 KiB
C#

#region References
using System;
using Server;
#endregion
namespace CustomsFramework
{
public struct CustomSerial : IComparable, IComparable<CustomSerial>
{
public static readonly CustomSerial MinusOne = new CustomSerial(-1);
public static readonly CustomSerial Zero = new CustomSerial(0);
private static CustomSerial _LastCustom = Zero;
private readonly int _Serial;
private CustomSerial(int serial)
{
_Serial = serial;
}
public static CustomSerial LastCore { get { return _LastCustom; } }
public static CustomSerial NewCustom
{
get
{
while (World.GetData(_LastCustom = (_LastCustom + 1)) != null)
{ }
return _LastCustom;
}
}
public int Value { get { return _Serial; } }
public bool IsValid { get { return (_Serial > 0); } }
public override int GetHashCode()
{
return _Serial;
}
public int CompareTo(CustomSerial other)
{
return _Serial.CompareTo(other._Serial);
}
public int CompareTo(object other)
{
if (other is CustomSerial)
{
return CompareTo((CustomSerial)other);
}
else if (other == null)
{
return -1;
}
throw new ArgumentException();
}
public override bool Equals(object obj)
{
if (obj == null || !(obj is CustomSerial))
{
return false;
}
return ((CustomSerial)obj)._Serial == _Serial;
}
public override string ToString()
{
return String.Format("0x{0:X8}", _Serial);
}
public static bool operator ==(CustomSerial first, CustomSerial second)
{
return first._Serial == second._Serial;
}
public static bool operator !=(CustomSerial first, CustomSerial second)
{
return first._Serial != second._Serial;
}
public static bool operator >(CustomSerial first, CustomSerial second)
{
return first._Serial > second._Serial;
}
public static bool operator <(CustomSerial first, CustomSerial second)
{
return first._Serial < second._Serial;
}
public static bool operator >=(CustomSerial first, CustomSerial second)
{
return first._Serial >= second._Serial;
}
public static bool operator <=(CustomSerial first, CustomSerial second)
{
return first._Serial <= second._Serial;
}
public static implicit operator int(CustomSerial serial)
{
return serial._Serial;
}
public static implicit operator CustomSerial(int serial)
{
return new CustomSerial(serial);
}
}
}