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);
}