using System.Threading.Tasks; using NitroxModel.Discovery.Models; using NitroxModel.Platforms.OS.Shared; namespace NitroxModel.Platforms.Store.Interfaces; public interface IGamePlatform { string Name { get; } Platform Platform { get; } /// /// Tries to start the platform and waits for it to be ready to launch games. If it has already been started it will return true. /// /// Returns true if platform is running or has started successfully. public Task StartPlatformAsync(); /// /// Tries to find the executable of the platform /// /// Returns path to the executable or null if not found public string GetExeFile(); /// /// True if game directory originates from the game platform. /// /// Directory to a game, usually where the exe file is. /// Returns true if the game platform owns this game. bool OwnsGame(string gameDirectory); }