Files
RobustToolbox/Robust.Server/Interfaces/IBaseServer.cs
Pieter-Jan Briers d945247f31 Add necessary infrastructure to allow content to launch game from itself.
This allows us to make Content.Client and Content.Server Exe projects so that they can be executed directly via your IDE. This'll help wtih not forgetting to do a full rebuild and such.
2020-01-22 20:16:29 +01:00

52 lines
1.5 KiB
C#

using System;
using Robust.Server.Player;
using Robust.Shared.Timing;
namespace Robust.Server.Interfaces
{
/// <summary>
/// Top level class that controls the game logic of the server.
/// </summary>
public interface IBaseServer
{
/// <summary>
/// The maximum number of players allowed in the server.
/// </summary>
int MaxPlayers { get; }
/// <summary>
/// The displayed name of our server.
/// </summary>
string ServerName { get; }
/// <summary>
/// Sets up the server, loads the game, gets ready for client connections.
/// </summary>
/// <returns></returns>
bool Start();
/// <summary>
/// Hard restarts the server, shutting it down, kicking all players, and starting the server again.
/// </summary>
void Restart();
/// <summary>
/// Shuts down the server, and ends the process.
/// </summary>
/// <param name="reason">Reason why the server was shut down.</param>
void Shutdown(string reason);
/// <summary>
/// Enters the main loop of the server. This functions blocks until the server is shut down.
/// </summary>
void MainLoop();
}
internal interface IBaseServerInternal : IBaseServer
{
void OverrideMainLoop(IGameLoop gameLoop);
void SetCommandLineArgs(CommandLineArgs args);
}
}