- Door Linking implementation started.
- Duplicate directions are not allowed within a Room
- If a User enters the name of a non-existing Room for linking to a Doorway, the Designer generates that Room for the User.
- Room Editor now refreshes it's list of Rooms after the Doorway Manager closes so that auto generated Rooms are displayed.
- Added new Doorway Manager UI
Engine:
- Added Door.DoorwayExist() method to the Door class.
- Renamed SaveSelected() to SaveObject()
- Added additional commenting
- Re-formatted the document
- Moved the search code out from the text box and into its own method SearchForObject()
- Changed search method for the text box from txtSearch_Enter to txtSearch_KeyDown
- Re-write of object save code finished.
Engine:
- Realm.GetZone() re-wrote to use LINQ.
- Zone.GetRoom() renamed to Zone.GetRoomByName() for searching for a Room by name
- Zone.GetRoomByFilename() added for searching by filename for a Room.
- Re-wrote Adding Zones into Realms via the UIRealmControl. Uses 54% less source, and better readability.
- UIRealmEditor now stores a proper backup of Zones incase of UIRealmControl instancing failure.
- Re-wrote the Object Delete code. Reduced the code by 52% and increased readability.
- Added additional search criteria to GetNodeType()
- Removed the Application from running within a Try/Catch as it made debugging difficult.
- Corrected SaveDataTypes.Currency being named incorrectly. Changed to Currencies
- ProjectInformation now inherits from the new IFileIO interface.
- ProjectInformation.Load can be used instead of the FileManager now (note: Saving of ProjectInformation must still be done using FileManager)
- Organizing of BaseObject done
- BaseObject now supports BaseObject.Load. Use this instead of FileManager.Load
- Fixed UIRealmControl error, attempting to deserialize into a null Zone Field
- Program.cs is now encapsulated into a try/catch
- IFileIO interface added for providing a blueprint on file I/O operations
Designer:
- Additional ObjectTypes added to the ObjectTypes enum
- Additional commenting provided throughout the source.
- Re-organized the source code.
- Simplified the Constructor code. Roughly 50% less code now.
- Re-wrote the Object Load code to make it easier to read and maintain.
- Renamed several menu items to conform to the projects naming conventions
- Auto-saving objects is now complete.
- Removed Save Object button
- Object Properties no longer displays the Project Information on startup
- Objects that can be edited within the Designer are displayed in Blue in the treeview
- Objects that can only be edited within another objects Mini-Editor are displayed in Red and cannot be edited within the main Designer
- Folders are displayed in Black
- Objects are not auto-saved until the objects Name is changed from 'New Object'
- The designer checks to see if the object has been saved yet prior to creating a new object.
- Double clicking an editable object (shown in blue text) now loads the object for editing.
- Menu item Project->Game Objects->Environment->New Room opens the Zones Mini-Room Editor if a Zone is loaded.
- Tooltips added to the Project Explorer and Object Properties panes
Mud Engine:
- FileManager returns the new directory layout when using GetDataPath
- Added Zones to SaveDataTypes enum.
- Game Objects now have a Description attribute attached to their public properties so the Designer can display a description of what the property is for within the Object Properties pane.
- Added PreCacheObjects Boolean to ProjectInformation for pre-loading objects when the runtime is built.
- All objects Filename is now set to readonly and cannot be edited within the Designer
- Started work on Realm.GetZone() method.
- Room.Zone is no longer hidden from the Object Properties Pane, but set to Readonly.
- Began work on Moving a Zones Rooms when a Zone is moved within a Realm.
- Removed un-needed code within the RealmEditor
- UIRoomControl now creates and saves Rooms. Duplicate Rooms cannot be created and Room re-naming is implemented.
- Removed remaining old code for previous Mud Designer Editors from within Program.cs
- UIControls namespace renamed to UIWidgets
- RealmExplorer Control renamed to RealmWidget
- RealmWidget now handles scanning and populating the Widget with existing realms rather than the designer handling it.
- Object saving re-wrote
- Zone Creation implemented
- Adding Zones to Realms implemented
- Removal of Zones from within Realms implemented
- Support for stand-alone Zones added. Unlike the previous version of the 'Mud Designer Realm Explorer & Zone Builder', Zones can be built without being placed within a Realm
- Deleting a Zone removes it from the Realms collection
- Custom UITypeEditor added for adding Zones to Realms.
- Menu item Project->Game Management has been re-structured
- Saved file extensions on objects changed from .XML back to .ObjectType (example .realm)
- RefreshProjectExplorer method added for refreshing the project explorer's directory structure
- All calls to btnRefreshObjects_Click has been replaced with RefreshProjectExplorer()
- The Project Explorer can now delete any object (file or folder) underneath the Project Root node.
- The Project Explorer now has the files it contains highlighted as blue to help readability.
- Changed the Project Explorer's root object from "Game Objects" to "Project"
- Began implementation of the Project Explorer's search feature.
- SaveSelected method added to save the current object contained within the property grid.
- Anytime an Objects Property is changed the designer now automatically saves the object.
- Object Properties label now displays the Type of object being edited and the objects name (Example 'Zone Properties (Village of Tespa)')
Mud Designer:
- The New Test Designer has been set as the startup object, as the old designer toolkit is being phased out.
Mud Engine:
- Added UIRealmControl class, a custom control used by the designer to edit the Realm.Zones property.
- UIRealmEditor class added, manages the UIRealmControl.
- Toolkit supports a default toolkit realm. Zone Builder now loads the default Realm each time it is opened. Allows developers to work on one Realm without having to re-select the Realm each time the Zone Builder is opened.
- Toolkit settings properties are no longer static within Settings.cs.
- Program.cs now contains a staticu property for Toolkit settings.
- Cleaned up the code within the editor.
Realm Explorer:
- Some UI adjustments.
Room Designer:
- Program.Room is no longer re-instanced after the room designer saves a room.
Toolkit Launcher:
- Zone and Room edior buttons removed. They can now only be accessed via the Realm Explorer.
- Changed the Toolkit Title.
Zone Builder:
- Began Room Doorway linking UI design.
Mud Engine:
- Zones now instance the Rooms collection.
- Travel Directions now moved from Environment namespace and placed within Objects namespace.
- Travel Directions now contains a class and method for returning the opposite direction provided. (ex: GetReverseDirection(TravelDirections.West) returns East).
- Realm Explorer & Zone Builder now work together correctly.
- Program.CurrentEditor now holds the currently running editor.
- BaseObject.ToString() added to return the Name of the object if ToString() is used.
- GetZone() method added to Realm.cs
- Moved ValidateDataPaths() from Engine.cs to FileManager.cs
- Moved GetDataPath() from Engine.cs to FileManager.cs
- Moved SaveDataTypes out from Engine.cs into it's own file. MudEngine.FileSystem.SaveDataTypes.cs
- Moved _CurrentRoom, _CurrentZone, _CurrentRealm and _ScriptEngine out from all editors containing those Fields, and placed them as static properties within Program.cs Room, Zone, Realm and ScriptEngine Properties
- Created 3 new Interfaces. IGameObject, IQuest and IRuleSet.
- Created QuestSetup class to begin working on Quest Editor at some point.