- Fixed ProjectInformation crashing the engine when it was serialized out by the Project Manager due to Currency serialization issues.
- Fixed ProjectInformation crashing the engine when it was serializing out the custom BaseObject Controls. [XmlIgnore()] attribute must be attached to each Control Property.
- Added Zone Builder and Realm Explorer to the Mud Designer Editor list.
- Currency Editor now loads and displays previously created Currencies within the list.
- Added Controls namespace to the engine
- Copied VisualContainer and RoomControl from Visual Designer to MUDEngine.Controls namespace
- Added Control property to BaseObject, all objects now can have a custom UserControl that the Visual Designer will create during runtime when the object is dragged to the designer.
- 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.
* Added Attributes namespace to hold custom attributes.
* UnusableAttribute.cs - Added to tag classes as unusable by the editors regardless if they inherit from BaseObject or not.
* BaseObject.cs - Contains OnEnter and OnExit methods
* InitialLocation.cs - UnusableAttribute tag applied.
Room Designer:
* frmMain.cs - Additional Script UI design.
* frmMain.cs - Added plugin support.
Plugin support is being tested. Room Designer is the testbed. It will ultimately end up inside MUDEngine.Engine. Curently (if ROOT/Plugins exists) loads all .dll files contained within the plugin directory. All classes inheriting from BaseObject and not tagged with the UnusableAttribute attribute automatically get added to the script editor.
* Program.cs - Removed test code.
Mud Designer:
* Program.cs - Message box added informing developers why the editors wont launch if the source is not placed in the _InstallLocation.
Mud Engine:
* Now includes a reference to the ManagedScripting assembly.
* BaseObject.cs - Added ScriptObject property.
Visual Designer:
* frmDesigner.cs - Removed File->Close test save code.
Mud Designer HUB:
* frmMain.cs - HUB now scans entire solution directory to find the correct app to launch rather than just checking the Project Manager directory.
* frmMain.cs - HUB now has the app launch precess wrapped within a try/catch/finally. No exception handling added as of yet within the catch.
MUDEngine:
* Engine.cs - ValidateProjectPath method now creates the Currency directory.
* Objects namespace added.
* Moved the Environment namespace and folder within the new Objects namespace.
* BaseObject.cs created. All Game objects will inherit from this, or a child of this class.
* Currency.cs created.
* ProjectInformation.cs - Added using statements.
Project Manager:
* Added Using statements for MUDEngine