MudEngine:

- BaseObject save code re-wrote
 - Added Inventory property to BaseCharacter 
 - BaseCharacter Save() now called when players are being disconnected.
 - Adjusted how objects Filenames are generated.
This commit is contained in:
Scionwest_cp 2010-07-30 15:50:53 -07:00
parent 2152a139b0
commit e822537128
4 changed files with 28 additions and 6 deletions

View file

@ -26,7 +26,7 @@ namespace MudEngine.Commands
if (player.Role == SecurityRoles.Admin)
{
for (int i = 0; i < player.ActiveGame.PlayerCollection.Length; i++)
player.ActiveGame.PlayerCollection[i].Save(player.ActiveGame.PlayerCollection[i].Name + ".dat");
player.ActiveGame.PlayerCollection[i].Save();
player.ActiveGame.Server.EndServer();
player.ActiveGame.Server.Initialize(555, ref player.ActiveGame.PlayerCollection);
return new CommandResults("Server Restarted.");

View file

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;
namespace MudEngine.FileSystem
{
@ -33,10 +34,18 @@ namespace MudEngine.FileSystem
/// <param name="o"></param>
public static void Save(string Filename, object o)
{
Type t = o.GetType();
foreach (PropertyInfo info in t.GetProperties())
{
}
/*
if (FileType == OutputFormats.XML)
{
XmlSerialization.Save(Filename, o);
}
*/
}
/// <summary>

View file

@ -64,6 +64,8 @@ namespace MudEngine.GameObjects
set
{
string extension = "." + this.GetType().Name;
if (extension.StartsWith("Base"))
extension = extension.Substring("Base".Length);
if (!value.EndsWith(extension))
value += extension;
@ -153,12 +155,14 @@ namespace MudEngine.GameObjects
/// Saves the current object with the supplied filename
/// </summary>
/// <param name="filename"></param>
public void Save(string filename)
public void Save()
{
string directory = Path.GetDirectoryName(filename);
string directory = Path.Combine(FileManager.GetDataPath(SaveDataTypes.Root), "Saved", "Players");
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
FileManager.Save(filename, this);
FileManager.Save(Filename, this);
}
public override string ToString()

View file

@ -30,20 +30,27 @@ namespace MudEngine.GameObjects.Characters
public Boolean IsControlled { get; set; }
/// <summary>
/// Gets or Sets if this user has Admin privileges or not.
/// Gets if this user has Admin privileges or not.
/// </summary>
public SecurityRoles Role { get; private set; }
/// <summary>
/// Gets or Sets if this player is active.
/// Gets or if this character is active.
/// </summary>
public Boolean IsActive { get; private set; }
/// <summary>
/// Gets the current inventory of the character
/// </summary>
public Bag Inventory { get; private set; }
public BaseCharacter(Game game) : base(game)
{
ActiveGame = game;
IsActive = false;
CurrentRoom = game.InitialRealm.InitialZone.InitialRoom;
Inventory = new Bag(game);
}
/// <summary>
@ -129,6 +136,8 @@ namespace MudEngine.GameObjects.Characters
internal void Clear()
{
// TODO: Save();
Save();
IsActive = false;
client.Close();
// TODO: Reset game so it can be used again