SkinANIM - Add ICloneable and IEquatable interface

This commit is contained in:
miku-666
2023-03-28 19:30:37 +02:00
parent d44dc2a72c
commit fafb4b85bf

View File

@@ -69,8 +69,8 @@ namespace PckStudio.Classes.Utils
DINNERBONE = 1 << 31, // 0x80000000
}
public class SkinANIM
{
public class SkinANIM : ICloneable, IEquatable<SkinANIM>
{
private ANIM_EFFECTS _ANIM;
public static readonly Regex animRegex = new Regex(@"^0x[0-9a-f]{1,8}\b", RegexOptions.IgnoreCase);
@@ -102,10 +102,16 @@ namespace PckStudio.Classes.Utils
public static implicit operator SkinANIM(ANIM_EFFECTS anim) => new SkinANIM(anim);
public static bool operator ==(SkinANIM a, ANIM_EFFECTS b) => a._ANIM == b;
public static bool operator !=(SkinANIM a, ANIM_EFFECTS b) => !(a == b);
public static bool operator ==(SkinANIM a, SkinANIM b) => a.Equals(b);
public static bool operator !=(SkinANIM a, SkinANIM b) => !a.Equals(b);
public override bool Equals(object obj) => obj is SkinANIM a && a == _ANIM;
public bool Equals(SkinANIM other)
{
return _ANIM == other._ANIM;
}
public override bool Equals(object obj) => obj is SkinANIM a && Equals(a);
public override int GetHashCode() => (int)_ANIM;
@@ -129,5 +135,10 @@ namespace PckStudio.Classes.Utils
{
return (_ANIM & flag) != 0;
}
}
public object Clone()
{
return MemberwiseClone();
}
}
}