using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace OpenVIII.Fields { public partial class WalkMesh { public class Access : ICloneable, IList { private List items; public Access() => this.items = new List(3); public short this[int index] { get => ((IList)items)[index]; set => ((IList)items)[index] = value; } public int Count => ((IList)items).Count; public bool IsReadOnly => ((IList)items).IsReadOnly; public void Add(short item) => ((IList)items).Add(item); public void Clear() => ((IList)items).Clear(); public bool Contains(short item) => ((IList)items).Contains(item); public void CopyTo(short[] array, int arrayIndex) => ((IList)items).CopyTo(array, arrayIndex); public IEnumerator GetEnumerator() => ((IList)items).GetEnumerator(); public int IndexOf(short item) => ((IList)items).IndexOf(item); public void Insert(int index, short item) => ((IList)items).Insert(index, item); public bool Remove(short item) => ((IList)items).Remove(item); public void RemoveAt(int index) => ((IList)items).RemoveAt(index); /// /// Goal to label unpassable locations. Deling labeled as -1 unsure if it's -1 or lessthanequal /// /// Which side of triangle in clockwise order /// /// public bool IsWall(int index) => items[index] <= -1; IEnumerator IEnumerable.GetEnumerator() => ((IList)items).GetEnumerator(); public object Clone() => new Access { items = items.ToList()}; } } }