using System; using System.Collections.Generic; using SabreTools.Library.Data; namespace SabreTools.Library.DatItems { /// /// Represents the information specific to a set/game/machine /// public class Machine : ICloneable { #region Publicly facing variables // Machine information public string Name; public string Comment; public string Description; public string Year; public string Manufacturer; public string RomOf; public string CloneOf; public string SampleOf; public string SourceFile; public bool? Runnable; public string Board; public string RebuildTo; public List Devices; public MachineType MachineType; #endregion #region Constructors /// /// Create a new Machine object /// public Machine() { Name = null; Comment = null; Description = null; Year = null; Manufacturer = null; RomOf = null; CloneOf = null; SampleOf = null; SourceFile = null; Runnable = null; Board = null; RebuildTo = null; Devices = null; MachineType = MachineType.NULL; } /// /// Create a new Machine object with the included information /// /// Name of the machine /// Description of the machine public Machine(string name, string description) { Name = name; Comment = null; Description = description; Year = null; Manufacturer = null; RomOf = null; CloneOf = null; SampleOf = null; SourceFile = null; Runnable = null; Board = null; RebuildTo = null; Devices = null; MachineType = MachineType.NULL; } #endregion #region Cloning methods /// /// Create a clone of the current machine /// /// New machine with the same values as the current one public object Clone() { return new Machine() { Name = this.Name, Comment = this.Comment, Description = this.Description, Year = this.Year, Manufacturer = this.Manufacturer, RomOf = this.RomOf, CloneOf = this.CloneOf, SampleOf = this.SampleOf, SourceFile = this.SourceFile, Runnable = this.Runnable, Board = this.Board, RebuildTo = this.RebuildTo, Devices = this.Devices, MachineType = this.MachineType, }; } #endregion } }