using System; using System.Numerics; using System.Text.Json.Serialization; using Questionable.Model.Common.Converter; namespace Questionable.Model.Gathering; public sealed class GatheringLocation { [JsonIgnore] public Guid InternalId { get; } = Guid.NewGuid(); [JsonConverter(typeof(VectorConverter))] public Vector3 Position { get; set; } public int? MinimumAngle { get; set; } public int? MaximumAngle { get; set; } public float? MinimumDistance { get; set; } public float? MaximumDistance { get; set; } public bool IsCone() { if (MinimumAngle.HasValue) { return MaximumAngle.HasValue; } return false; } public float CalculateMinimumDistance() { return MinimumDistance ?? 1f; } public float CalculateMaximumDistance() { return MaximumDistance ?? 3f; } }