namespace Sandbox.Mounting;
public ref struct InitializeContext
{
private MountHost system;
internal InitializeContext( MountHost system )
{
this.system = system;
}
// progress output, error recording etc
// tools to find games on Steam, and their install status
public void AddError( string v )
{
// TODO
}
///
/// Return true if this app is installed on Steam
///
public bool IsAppInstalled( long appid )
{
return system.Steam?.IsAppInstalled( appid ) ?? false;
}
///
/// Return true if this DLC is installed on Steam
///
public bool IsDlcInstalled( long appid )
{
return system.Steam?.IsDlcInstalled( appid ) ?? false;
}
///
/// If this app is installed we'll return the folder in which it is installed
///
public string GetAppDirectory( long appid )
{
if ( !IsAppInstalled( appid ) ) return null;
// Maybe we want to return a sandboxed, readonly filesystem to this directory instead?
// but even then, what if there are files with passwords or rcon details in, it's
// not 100% safe, it'll never be truly sandboxed, so should we even try?
return system.Steam?.GetAppDirectory( appid ) ?? null;
}
}