MUD Engine:

- Changed ValidateProjectPath to ValidateDataPaths. Now can use the engines current install location if a path is not supplied
 - ValidateDataPaths iterates through a new enumerator containing all of the data paths, and creates the directories if they dont exist.
 - GetDataPath method added for returning the absolute path to any of the save directories specified in the argument.
 - BaseObject now contains a readonly Filename property that returns the objects Name with it's Type assigned as the files extension.
 - BaseObject's Script property was added.
 - Room.StatDrain re-added. Changed property Type to boolean instead of custom struct.
 - Room Designer's constructor code was refracted to help clean it up. Plugin loading, doorway list compiling and room setup is now contained in three different methods.
 - Room Designer can now Save scripts.
 - Room Designer now has default scripts generated.
 - Changing the Object Management tabs to 'Script' now refreshes the script to display correctly.
 - Room Designer now accepts a single argument for specifying the name of a room to Load. Use "room=Room Name.room" as the syntax.
 - Room loading is implemented, but only via a supplied argument during application launch.
This commit is contained in:
Scionwest_cp 2009-11-25 21:21:50 -08:00
parent d7d92e49af
commit 1cc477f23c
13 changed files with 489 additions and 317 deletions

View file

@ -1,4 +1,5 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
@ -11,14 +12,50 @@ namespace RoomDesigner
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
static void Main(string[] arguments)
{
MUDEngine.Engine.ValidateProjectPath(Application.StartupPath);
MUDEngine.Engine.ValidateDataPaths();
MUDEngine.FileSystem.FileSystem.FileType = MUDEngine.FileSystem.FileSystem.OutputFormats.XML;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());
//Check if we have a valid room supplied in the arguments.
//The Zone editor can launch the Room Designer, if the user
//chooses to edit a room from within the Zone Editor. Currently
//Zone editor is the only planned editor that can allow users to
//edit existing rooms. Simplifies it, as I don't need to design
//a Realm/Zone/Room explorer in the Room or Realm editors.
if (arguments.Length == 0)
{
Application.Run(new frmMain());
}
else
{
foreach (string argument in arguments)
{
//check if it's a room specified.
if (argument.ToLower().StartsWith("room="))
{
int startIndex = "room=".Length;
string room = argument.Substring(startIndex);
string file = Path.Combine(Application.StartupPath, "Data\\Rooms\\") + room;
if (File.Exists(file))
{
Application.Run(new frmMain(room));
}
else
{
MessageBox.Show("Unable to locate the specified file."
+ "Please ensure that it exists or the correct argument format was used.\n"
+ "Room: " + file,
"Room Designer", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Application.Run(new frmMain());
}
}
}
}
}
}
}