Gateways.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. namespace OpenVIII.Fields
  6. {
  7. public class Gateways : IEnumerable<Gateway>, IReadOnlyList<Gateway>
  8. {
  9. #region Fields
  10. private List<Gateway> gateways;
  11. #endregion Fields
  12. #region Constructors
  13. public Gateways() => this.gateways = new List<Gateway>(12);
  14. #endregion Constructors
  15. #region Properties
  16. public int Count => ((IReadOnlyList<Gateway>)gateways).Count;
  17. #endregion Properties
  18. #region Indexers
  19. public Gateway this[int index] => ((IReadOnlyList<Gateway>)gateways)[index];
  20. #endregion Indexers
  21. #region Methods
  22. public static Gateways Read(BinaryReader br, int type)
  23. {
  24. var g = new Gateways();
  25. foreach (var i in Enumerable.Range(0, g.gateways.Capacity))
  26. g.gateways.Add(Gateway.Read(br, type));
  27. return g;
  28. }
  29. public IEnumerator<Gateway> GetEnumerator() => ((IEnumerable<Gateway>)gateways).GetEnumerator();
  30. IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable<Gateway>)gateways).GetEnumerator();
  31. #endregion Methods
  32. }
  33. }