using Content.Shared.Disposal.Components; using Robust.Shared.Serialization; namespace Content.Shared.Disposal; [Serializable, NetSerializable] public sealed class MailingUnitBoundUserInterfaceState : BoundUserInterfaceState, IEquatable { public string? Target; public List TargetList; public string? Tag; public SharedDisposalUnitComponent.DisposalUnitBoundUserInterfaceState DisposalState; public MailingUnitBoundUserInterfaceState(SharedDisposalUnitComponent.DisposalUnitBoundUserInterfaceState disposalState, string? target, List targetList, string? tag) { DisposalState = disposalState; Target = target; TargetList = targetList; Tag = tag; } public bool Equals(MailingUnitBoundUserInterfaceState? other) { if (other is null) return false; if (ReferenceEquals(this, other)) return true; return DisposalState.Equals(other.DisposalState) && Target == other.Target && TargetList.Equals(other.TargetList) && Tag == other.Tag; } public override bool Equals(object? other) { if (other is MailingUnitBoundUserInterfaceState otherState) return Equals(otherState); return false; } public override int GetHashCode() { return base.GetHashCode(); } }