using Robust.Shared;
using Robust.Shared.Utility;
namespace Robust.Client
{
public sealed class GameControllerOptions
{
///
/// Whether content sandboxing will be enabled & enforced.
///
public bool Sandboxing { get; init; } = true;
// TODO: Expose mounting methods to games using Robust as a library.
///
/// Lists of mount options to mount.
///
public MountOptions MountOptions { get; init; } = new();
///
/// Name the userdata directory will have.
///
public string UserDataDirectoryName { get; init; } = "Space Station 14";
///
/// Name of the configuration file in the user data directory.
///
public string ConfigFileName { get; init; } = "client_config.toml";
// TODO: Define engine branding from json file in resources.
///
/// Default window title.
///
///
/// Defaults to RobustToolbox if unset.
///
public string? DefaultWindowTitle { get; init; }
///
/// Assemblies with this prefix will be loaded.
///
///
/// Defaults to Content. if unset.
///
public string? ContentModulePrefix { get; init; }
///
/// Name of the content build directory, for game pack mounting purposes.
///
public string ContentBuildDirectory { get; init; } = "Content.Client";
///
/// Directory to load all assemblies from.
///
public ResPath AssemblyDirectory { get; init; } = new(@"/Assemblies/");
///
/// Directory to load all prototypes from.
///
public ResPath PrototypeDirectory { get; init; } = new(@"/Prototypes/");
///
/// Directory resource path containing window icons to load.
///
public ResPath? WindowIconSet { get; init; }
///
/// Resource path for splash image to show when the game starts up.
///
public ResPath? SplashLogo { get; init; }
///
/// Whether to disable mounting the "Resources/" folder on FULL_RELEASE.
///
public bool ResourceMountDisabled { get; init; } = false;
///
/// Whether to mount content resources when not on FULL_RELEASE.
///
public bool LoadContentResources { get; init; } = true;
///
/// Whether to load config and user data.
///
public bool LoadConfigAndUserData { get; init; } = true;
}
}