diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/Game.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Game.cs | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs new file mode 100644 index 000000000..e4c417c8a --- /dev/null +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -0,0 +1,129 @@ +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; +using System; +using System.Collections.Generic; +using MediaBrowser.Model.IO; +using MediaBrowser.Model.Serialization; +using System; + +namespace MediaBrowser.Controller.Entities +{ + public class Game : BaseItem, IHasTrailers, IHasScreenshots, ISupportsPlaceHolders, IHasLookupInfo<GameInfo> + { + public Game() + { + MultiPartGameFiles = new string[] {}; + RemoteTrailers = EmptyMediaUrlArray; + LocalTrailerIds = new Guid[] {}; + RemoteTrailerIds = new Guid[] {}; + } + + public Guid[] LocalTrailerIds { get; set; } + public Guid[] RemoteTrailerIds { get; set; } + + public override bool CanDownload() + { + return IsFileProtocol; + } + + [IgnoreDataMember] + public override bool SupportsThemeMedia + { + get { return true; } + } + + [IgnoreDataMember] + public override bool SupportsPeople + { + get { return false; } + } + + /// <summary> + /// Gets or sets the remote trailers. + /// </summary> + /// <value>The remote trailers.</value> + public MediaUrl[] RemoteTrailers { get; set; } + + /// <summary> + /// Gets the type of the media. + /// </summary> + /// <value>The type of the media.</value> + [IgnoreDataMember] + public override string MediaType + { + get { return Model.Entities.MediaType.Game; } + } + + /// <summary> + /// Gets or sets the players supported. + /// </summary> + /// <value>The players supported.</value> + public int? PlayersSupported { get; set; } + + /// <summary> + /// Gets a value indicating whether this instance is place holder. + /// </summary> + /// <value><c>true</c> if this instance is place holder; otherwise, <c>false</c>.</value> + public bool IsPlaceHolder { get; set; } + + /// <summary> + /// Gets or sets the game system. + /// </summary> + /// <value>The game system.</value> + public string GameSystem { get; set; } + + /// <summary> + /// Gets or sets a value indicating whether this instance is multi part. + /// </summary> + /// <value><c>true</c> if this instance is multi part; otherwise, <c>false</c>.</value> + public bool IsMultiPart { get; set; } + + /// <summary> + /// Holds the paths to the game files in the event this is a multipart game + /// </summary> + public string[] MultiPartGameFiles { get; set; } + + public override List<string> GetUserDataKeys() + { + var list = base.GetUserDataKeys(); + var id = this.GetProviderId(MetadataProviders.Gamesdb); + + if (!string.IsNullOrEmpty(id)) + { + list.Insert(0, "Game-Gamesdb-" + id); + } + return list; + } + + public override IEnumerable<FileSystemMetadata> GetDeletePaths() + { + if (!IsInMixedFolder) + { + return new[] { + new FileSystemMetadata + { + FullName = FileSystem.GetDirectoryName(Path), + IsDirectory = true + } + }; + } + + return base.GetDeletePaths(); + } + + public override UnratedItem GetBlockUnratedType() + { + return UnratedItem.Game; + } + + public GameInfo GetLookupInfo() + { + var id = GetItemLookupInfo<GameInfo>(); + + id.GameSystem = GameSystem; + + return id; + } + } +} |
