mirror of
https://github.com/osukey/osukey.git
synced 2025-08-04 23:24:04 +09:00
Add RulesetInfo
hashcode implementation and tidy up equality
This commit is contained in:
@ -47,14 +47,25 @@ namespace osu.Game.Rulesets
|
||||
|
||||
public bool Available { get; set; }
|
||||
|
||||
public bool Equals(RulesetInfo? other) => other != null
|
||||
&& OnlineID == other.OnlineID
|
||||
&& Available == other.Available
|
||||
&& Name == other.Name
|
||||
&& InstantiationInfo == other.InstantiationInfo;
|
||||
public bool Equals(RulesetInfo? other)
|
||||
{
|
||||
if (ReferenceEquals(this, other)) return true;
|
||||
if (other == null) return false;
|
||||
|
||||
return ShortName == other.ShortName;
|
||||
}
|
||||
|
||||
public bool Equals(IRulesetInfo? other) => other is RulesetInfo b && Equals(b);
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
// Importantly, ignore the underlying realm hash code, as it will usually not match.
|
||||
var hashCode = new HashCode();
|
||||
// ReSharper disable once NonReadonlyMemberInGetHashCode
|
||||
hashCode.Add(ShortName);
|
||||
return hashCode.ToHashCode();
|
||||
}
|
||||
|
||||
public override string ToString() => Name;
|
||||
|
||||
public RulesetInfo Clone() => new RulesetInfo
|
||||
|
Reference in New Issue
Block a user