Newer
Older
Qwilight / Qwilight / UIComponent / NotifySaveBundleCompetence.cs
@Taehui Taehui on 9 Aug 1 KB v1.16.36
namespace Qwilight.UIComponent
{
    public struct NotifySaveBundleCompetence : IEquatable<NotifySaveBundleCompetence>
    {
        public const int NotifySaveBundleCallable = 0;
        public const int NotifySaveBundleAvatar = 1;
        public const int NotifySaveBundleUbuntu = 2;
        public const int NotifySaveBundleVoid = 3;

        public int Data { get; init; }

        public override bool Equals(object obj) => obj is NotifySaveBundleCompetence toNotifySaveBundleCompetence && Equals(toNotifySaveBundleCompetence);

        public bool Equals(NotifySaveBundleCompetence other) => Data == other.Data;

        public override int GetHashCode() => Data.GetHashCode();

        public override string ToString() => Data switch
        {
            NotifySaveBundleCallable => LanguageSystem.Instance.NotifySaveBundleCallableContents,
            NotifySaveBundleAvatar => LanguageSystem.Instance.NotifySaveBundleAvatarContents,
            NotifySaveBundleUbuntu => LanguageSystem.Instance.NotifySaveBundleUbuntuContents,
            NotifySaveBundleVoid => LanguageSystem.Instance.NotifySaveBundleVoidContents,
            _ => throw new ArgumentException(Data.ToString())
        };

        public static bool operator ==(NotifySaveBundleCompetence left, NotifySaveBundleCompetence right) => left.Equals(right);

        public static bool operator !=(NotifySaveBundleCompetence left, NotifySaveBundleCompetence right) => !(left == right);
    }
}