- 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.
- Code Optimizations
- Room Editor UI Tweaking
- Doorway Editor added
- Room Interface added.
- Rooms now contain a Realm Property so that users can easily figure out what Realm a designated Room belongs to.
- Rooms are now saved within the selected Zone.
- Fixed Project Explorer not displaying project directory structure on Designer startup.
Engine:
- Re-wrote Zone.GetRoom() to use the more efficient LINQ query.
- Zone.RefreshRoomList now saves itself after re-building the Room collection
- UIRoomControl now has a public Rooms collection for use by the UIRoomEditor
- UIRoomEditor now returns the modified UIRoomControl.Rooms collection to the Designers properties pane instead of an empty collection.
Designer:
- Project Explorer now displays project directory structure on load. This was broken during Designers Constructor re-write.
- Added additional comments to increase readability of source.
- 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
- Implemented a UITypeEditor for scripts to test developing custom UI Editors for PropertyGrids. It allows for scripts to be edited directly within the PropertyGrid now by launching the new ScriptEditor form. This is how most of the editors custom objects will be implemented into the PropertyGrids.
- The Script property is now browsable within PropertyGrids now that they have a custom editor built.
Mud Designer:
- ScriptEditor added.
- Removed Script editor from within the Realm Explorer and I will do the same for the Zone Explorer and Room Builder.
- All objects can now have a script attached to them from within any editor thanks to the new UITypeEditor approach being used.
- Currency Editor no longer adds duplicate currencies when saved.
- Currency Editor now overwrites existing currencies.
- Fixed Currency Editor looking for .xml filetypes instead of .currency filetypes. Saved Currencies now show up in the currency list
Mud Engine:
- Removed IsSafe property from BaseObject as not all objects will need this property.
- Added IsSafe property to Zone.cs
- Added IsSafe property to Room.cs.
- Zones can not be instanced without providing the owning realm in its constructor.
- Started adding tooltips to the editors.
- Zone Builder now checks if a Realm has been loaded yet or not prior to creating Zones.
- Zone Builder will not allow Rooms to be created within new Zones until the Zone has been saved.
- Zone Builder checks if a New Zone has not been saved yet prior to creating another New Zone
- Renamed Room.ParentZone to Room.Zone to be consistent with the Realm and Zone classes.