inz-00/Assets/Scripts/Common/MapSite.cs
2019-11-16 22:23:14 +01:00

28 lines
818 B
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Assets.Common
{
[Serializable]
public class MapSite : IHasMetadata
{
public Metadata Metadata { get; } = new Metadata();
public MapSite(Point center, IEnumerable<int> boundary)
{
Center = center;
Boundary = boundary;
}
public int Index { get; internal set; }
public Point Center { get; set; }
public ISet<string> Tags { get; set; } = new HashSet<string> { CommonTags.Empty };
public IEnumerable<int> Boundary { get; set; }
public IEnumerable<(int, int)> Edges => Boundary.RotateRight().Zip(Boundary, (a, b) => (a, b));
[field: NonSerialized]
public Map Map { get; internal set; }
}
}