- Removed code for pathing. MudEngine handles it now.
- Removed _InstallLocation and placed it as a private Field within the MudEngine.Engine class.
- Mud Designer now Validates paths during startup
Mud Engine:
- Added Debug code to ValidateDataPaths and GetDataPath Methods. if DEBUG constant is defined it returns the paths or creates the directory structure based off the _InstallLocation field.
- Zones now contain a copy of the Realms Name
Realm Explorer:
- Renamed _Realm to _CurrentRealm to be more consistant with other editor naming conventions.
- Zones can now be added to Realms
- Realms can now be saved and loaded
- Zones not within any Realms are listed in the Realm Explorer as being Available For Use
- Realm Explorer Launchs the Zone Builder
- Added a messagebox on startup, indicating that the Room Designer and Zone Builder buttons will be removed shortly, as the preferred way to access the two editors will be via the Realm Explorer.
Room Designer:
- Code Cleanup
Zone Builder:
- Script engine implemented into the editor.
- Zones can now be saved.
- Room Editor link implemented. Room Designer can now be launched from within the Zone Builder.
- Corrected Builder not creating required directories correctly.
This marks the first version of the toolkit with the Realm Explorer, Zone Builder and Room Designer all linked together, however not fully complete.
- BaseObject now sets the default value for Name programmatically for the editors propertygrids.
- Room, Realm and Zone no longer set their Name Properties to their default value, BaseObject handles it.
Room Designer:
- Scripts where'nt being saved, this has been corrected.
- Rooms wheren't being loaded when supplied via the command line argument (Method is used by the Zone Builder)
- Displaying scripts within the Designer is now fixed.
Zone Builder:
- Now displays the Zone Object Properties in the property grid.
- Deleted from Solution.
Mud Designer:
- Now checks for arguments, allowing the other editors to launch the Mud Designer with another editor supplied as an argument, allowing one editor to launch another one without needing to copy-paste a bunch of code.
MUD Engine:
- BaseObject now sets default values for Script and Name so it's child classes won't need to.
- Realm and Room no longer set Name and Script property default values.
Realm Explorer:
- Now validates Script code.
- Changed from using Managed Scripting Serialization to MUDEngine filesystem layer for saving/loading.
- Added support for launching the Zone Builder from within the Realm Explorer.
Room Designer:
- Changed from using Managed Scripting Serialization code, to MUD Engine Filesystem layer for saving/loading.
Zone Builder:
- Initial UI Designs
- Launches Room Designer for editing of rooms.
- Assigned Default property values to some of the Realm class properties
Realm Explorer:
- Can now delete existing Realms
- Script tab included into explorer
- Realm base script is generated now.
- Realm Exporer now asks to overwrite an existing file prior to saving.
Room Designer:
- Creating a new room now resets the script.
- ValidateDataPaths no longer creates a ROOT folder as a child folder to the Data directory.
- The Realm class now has a Zones collection property.
- Adjusted Room and ProjectInformation Property Categories for Property Grid.
Realm Explorer:
- Now Save and Loads Realms
- Now calls MUDEngine.Engine.ValidateDataPaths() during startup to ensure all directories exists.
- New Realms can be created.
- Existing Realms are now loaded into the listbox.
- Prototype code wrote for finding available and un-available Zones.
- Almost complete UI
Zone Builder:
- Now calls MUDEngine.Engine.ValidateDataPaths() during startup to ensure all directories exists.
- 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.
- Cleaned up un-used code
- Removed un-used Fields
- Rooms can now be saved via the UI
- Rooms can be loaded via a command line argument "room=Room Name.room"
- 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.
* Door.cs AvailableTravelDirections enum added to the constructor arguments. Doors now require a TravelDirection to be specified as an argument when instanced.
Room Designer:
* frmMain.cs - renamed door field to _CurrentDoor.
* frmMain.cs - renamed room field to _CurrentRoom.
* frmMain.cs - Added detailed commenting.
* frmMain.cs - Doorways can now be installed and uninstalled from a room. While it was available within the editor, it was not implemented fully until now.
* frmMain.cs - Removed most of the doorway management code from the propertyDoor_PropertyValueChanged method, and broke the code down into several smaller methods for easier maintenance.
* frmMain.cs - Added InstallDoor() method for installing doorways from rooms.
* frmMain.cs - Added UninstallDoor() method for uninstalling doorways from rooms.
* frmMain.cs - Added GetDirection() method, converts a string representation of a TravelDirection into an actual TravelDirection enum value for use with creating a Door.
* Program.cs - _InstallLocation Field changed to reflect me moving the source onto another hard-drive. Developers will need to adjust the Field to ensure the engine is looking in the right directory for the source.
* 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.
* Can now add multiple tabs when dragging objects onto the designer
* Object properties are shown in the propertygrid when tabs are swapped.
* Dragging an object onto any tab will create a new tab for that object.
* Added custom container controller
VisualDesigner:
* New editor designed similar to Visual Studio.
* Loads MUDEngine.dll and places all classes inheriting from GameObject into the designers Object list.
* Door.cs - Now contains a TravelDirection property so rooms can find what travel direction each doorway within uses.
* Room - Now contains a collection for Installed Doors
* TravelDirections.cs - Now contains a 'None' enumerable value.
Room Designer:
* Did some additional work on implementing Installed Doors and handling their changing Installed/Uninstalled values.
* Moved editor buttons onto a Tab control, future test editors will be placed on a separate tab titled 'Testing Editors'
MUDEngine:
* Currency.cs - Added Default Values to Properties
* Door.cs - Added initial properties and door state
* ProjectInformation.cs - Removed StartingLocation enum and moved to Objects/Environment/InitialLocation.cs
* Room.cs - Added initial properties
* TravelDirections.cs - Added initial travel direction enum. Room Editor binds to this enum. Additional directions added in the future will automatically be added to the Room Designer.
* ProjectInformation.cs - ProjectName property renamed to GameTitle.
Room Designer:
* User interface re-constructed and is closer to the final state. Shouldn't change much from it's current configuration.
* Additional User Interface design changes.
The Room Designer UI layout has not been decided on as of yet, and thus numerous changes will probably be made to it over the next several days.
Room Designer:
* Visual Designer added to UI for visualizing a rooms layout.
* Sidebar added to Designer for Property editing and Tab Control browsing for additional editing options.
* Removed old code sending arguments to the editor applications when they start.
* Re-organized the HUB code. ExecuteApp method is below all of the Controls code.
* Added exception handling within the ExecuteApp Try/Catch/Finally code block.
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
* ProjectInformation.cs - TimeOfDayOptions enum added for changing how the project uses day time.
* ProjectInformation.cs - TimeOfDay Property Added.
* ProjectInformation.cs - TimeOfDayTransition PropertyAdded
* ProjectInformation.cs - DayLength Property added.
* ProjectInformation.cs - Story Property added. Non-browsable.
Project Manager:
* frmMain.cs - Zone and Room Lists are now instanced within the constructor.
* frmMain.cs - Project Story text box added for creating and saving the projects story.
* Realm.cs - Description Property added.
* Room.cs - Inherits from Zone.cs
* Zone.cs - Inherits from Realm.cs
* Zone.cs - Removed Name Property.
* Deleted old MUDEngine/XmlSerialization.cs as it has been replaced with MUDEngine/FileSystem/XmlSerialization.cs
Project Manager:
* frmMain.cs - collection of Zones and Rooms are created during selectedIndexChanges from comRealms, lstRooms and lstZones.
* frmMain.cs - PropertyGrid is now populated within the frmMain_Load instead of within the forms constructor.
* frmMain.cs - lstZones now populates the lstRooms list box with rooms when its selected index is changed.
* Created a FileSystem class. FileSystem acts as a back end class for saving and loading data. Adding additional file types or data management options such as SQL will not be easier to implement by creating a new class that the FileSystem class can use.
* XmlSerialization class is no longer public. It's changed to internal and has its information passed to it via the FileSystem class.
Project Manager:
* Project Manager now uses the FileSystem class for saving and loading data instead of the XmlSerialization class.
MudEngine Zones now have a Name property.
MudEngine.ProjectInformation.BaseCurrencyName is no longer filed under Misc. within the Project Manager.
The Project Managers Realms list now generates the Available Zones lists if Zones exist.
The Project Managers Zone and Room list boxes have been replaced with CheckedListBoxes to easily select Initial Room/Zones.