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})";
}
}
}