42 lines
798 B
C#
42 lines
798 B
C#
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;
|
|
}
|
|
}
|