using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace OpenVIII
{
namespace Kernel
{
///
/// Slot Array Data
///
///
public sealed class SlotArray
{
#region Fields
public const int Count = 60;
public const int ID = 26;
public const int Size = 1;
#endregion Fields
#region Constructors
private SlotArray(byte slotID) => SlotID = slotID;
#endregion Constructors
#region Properties
public byte SlotID { get; }
#endregion Properties
#region Methods
private static SlotArray CreateInstance(BinaryReader br) => new SlotArray(br.ReadByte());
private static SlotArray CreateInstance(byte slotID) => new SlotArray(slotID);
public static implicit operator byte(SlotArray slotArray) => slotArray.SlotID;
public static implicit operator SlotArray(byte slotID) => CreateInstance(slotID);
public static IReadOnlyList Read(BinaryReader br) =>
Enumerable.Range(0, Count).Select(x => CreateInstance(br)).ToList().AsReadOnly();
public override string ToString()
{
return $"{SlotID:D2}";
}
#endregion Methods
}
}
}