diff --git a/PCK-Studio/Classes/Utils/SkinANIM.cs b/PCK-Studio/Classes/Utils/SkinANIM.cs index f7796c54..58f56a2e 100644 --- a/PCK-Studio/Classes/Utils/SkinANIM.cs +++ b/PCK-Studio/Classes/Utils/SkinANIM.cs @@ -69,8 +69,8 @@ namespace PckStudio.Classes.Utils DINNERBONE = 1 << 31, // 0x80000000 } - public class SkinANIM - { + public class SkinANIM : ICloneable, IEquatable + { 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(); + } + } }