* XMLData.Save now has exception handling code in-place.
* Added better commenting to the majority of the projects files. * Removed command support from the server console. * Added a Client side command STOP that can be used to shut down the server. In the future that will be specific to Admins only. * Characters now have their save code invoked during server shut down. * Server shut down code added. Server.Stop() fully implemented.
This commit is contained in:
parent
b5c9f2967a
commit
f0ec29c240
8 changed files with 148 additions and 14 deletions
|
@ -6,37 +6,86 @@ using System.Text;
|
|||
|
||||
using MudEngine.Networking;
|
||||
using MudEngine.Core;
|
||||
using MudEngine.Game.Characters;
|
||||
|
||||
namespace MudEngine.Game
|
||||
{
|
||||
/// <summary>
|
||||
/// StandardGame will be the base of all Mud Games created with the engine.
|
||||
/// It manages all of the game components including the Server and the Game World.
|
||||
/// </summary>
|
||||
public class StandardGame
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or Sets the Name of this game.
|
||||
/// </summary>
|
||||
public String Name { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets the website where this game can be played at.
|
||||
/// </summary>
|
||||
public String Website { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets the Description of this game. This is often displayed upon first connection.
|
||||
/// Note that this is displayed BEFORE the Servers MOTD.
|
||||
/// </summary>
|
||||
public String Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets the Version of this game.
|
||||
/// </summary>
|
||||
public String Version { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets if Room Names will be shown to the player each time they travel to a new Room.
|
||||
/// </summary>
|
||||
public Boolean HiddenRoomNames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets if this Game is currently being played on a Server
|
||||
/// </summary>
|
||||
public Boolean Multiplayer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets the minimum password size required for user account passwords
|
||||
/// </summary>
|
||||
public Int32 MinimumPasswordSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Get or Sets if the game will automatically save the world. For servers with poor specifications, this can be disabled to
|
||||
/// help with performance. Manually saving the world will be required.
|
||||
/// </summary>
|
||||
public Boolean AutoSave { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets if the game is currently running or not.
|
||||
/// </summary>
|
||||
public Boolean Enabled { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets if the game is in debug more or not.
|
||||
/// </summary>
|
||||
public Boolean Debugging { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or reference to the currently running Server.
|
||||
/// </summary>
|
||||
public Server Server { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// StandardGame constructor. If no Port number is provided, 4000 is used.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
public StandardGame(String name) : this(name, 4000)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// StandardGame constructor.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="port"></param>
|
||||
public StandardGame(String name, Int32 port)
|
||||
{
|
||||
Logger.WriteLine("Initializing Standard Mud Game");
|
||||
|
@ -52,6 +101,13 @@ namespace MudEngine.Game
|
|||
this.Server = new Server(this, port);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts the game by getting all of the game scripts, loading the world
|
||||
/// loading all of the games commands and starting the server.
|
||||
/// </summary>
|
||||
/// <param name="maxPlayers"></param>
|
||||
/// <param name="maxQueueSize"></param>
|
||||
/// <returns></returns>
|
||||
public Boolean Start(Int32 maxPlayers, Int32 maxQueueSize)
|
||||
{
|
||||
Logger.WriteLine("Starting up Standard Game");
|
||||
|
@ -75,13 +131,28 @@ namespace MudEngine.Game
|
|||
return this.Enabled;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stops the game but unloading the world, shutting down the server and unloading all scripts/commands.
|
||||
/// </summary>
|
||||
public void Stop()
|
||||
{
|
||||
//Save the world.
|
||||
|
||||
//Stop the server
|
||||
this.Server.Stop();
|
||||
|
||||
//Stop the world.
|
||||
|
||||
//Purge all scripts and commands.
|
||||
CommandSystem.PurgeCommands();
|
||||
|
||||
//Disable the game.
|
||||
this.Enabled = false;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue