using System; using System.Collections.Generic; using Pal.Client.Database; namespace Pal.Client.Floors; /// /// A loaded in memory, with certain extra attributes as needed. /// internal sealed class PersistentLocation : MemoryLocation { /// public int? LocalId { get; set; } /// /// Network id for the server you're currently connected to. /// public Guid? NetworkId { get; set; } /// /// For markers that the server you're connected to doesn't know: Whether this was requested to be uploaded, to avoid duplicate requests. /// public bool UploadRequested { get; set; } /// /// public List RemoteSeenOn { get; set; } = new(); /// /// Whether this marker was requested to be seen, to avoid duplicate requests. /// public bool RemoteSeenRequested { get; set; } public ClientLocation.ESource Source { get; init; } public override bool Equals(object? obj) => obj is PersistentLocation && base.Equals(obj); public override int GetHashCode() => base.GetHashCode(); public static bool operator ==(PersistentLocation? a, object? b) { return Equals(a, b); } public static bool operator !=(PersistentLocation? a, object? b) { return !Equals(a, b); } public override string ToString() { return $"PersistentLocation(Position={Position}, Type={Type})"; } }