rScripting can be found on Codeplex at http://rScript.Codeplex.com which is a complete script engine.
Mud Designer will make use of it, and will allow me to just work on the Mud Designer engine, as my rScript is complete. I still had quiet a bit of work to do with the Mud Designers Script System.
- Began support work on the networking side of the designer UI. Attempts to connect to the server or run stand-alone.
- Began implementing object creation.
Mud Engine:
- Added the [Browsable(false)] attribute to several Game properties so they are not visible within the new Designer.
- Added new Project. Mud Designer project will include the GUI elements needed for graphically building a MUD. Due to Environment creation being finalized, work on a GUI based Environment creation can start.
Mud Engine:
- Objects no longer require a path to be supplied when calling Object.Save()
- EditRealm command now edits senses.
- EditRoom now fully supports creating doorways, however editing existing doorways and linking to existing rooms is not implemented. This command only supports creating new doorways for non-existing Rooms (Rooms are generated as needed)
- EditZone Now fully supports senses and implemented.
- Game now supports loading of .ini files when calling Game.Load()
- All objects now include a SavePath properties. Override this to supply a path for where the object needs to be saved. All Environment and BaseCharacter objects override the BaseObject.SavePath to save into ActiveGame.DataPaths.Environemnts and Players respectively.
- ObjectCollection now instanced during ScriptEngine initialization to prevent exceptions during runtime.
- Create command no longer converts all names to lower case.
- Updated the Walk command to execute the Look command in a safe manor without injecting a command into the player Telnet console.
- 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.
- 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.
- 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.
* 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.
* 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.
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
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.
MudDesigner no longer checks for the existance of the Data directory, this is handled by each editor independently.
Project Manager was checking the wrong directory for the project file, thus never letting the project file be loaded during startup.