Commit graph

122 commits

Author SHA1 Message Date
Scionwest_cp
efc49e35ce Designer:
- Designer now has a status bar to show when various things are completed successfully.
 - The Offline Runtime can now be launched via the Designers Project menu.
 - Designer now features a 'Set As Initial Location' item within the Right-Click menu. Right Click on a Zone and assign it as your projects initial starting location.

Engine:
 - BaseCharacter class fleshed out a little bit. Now includes an OnTravel method for player travel code.
 - PlayerBasic class now inherits from BaseCharacter.
 - ProjectInformation now supports setting the games initial zone location.
 - ProjectInformation.Filename is now placed within a category (Object Settings) within the Property Pane of the Designer.
 - Room.GetDoor method added for returning a specified door with the matching  travel direction.
 - StartingLocation now overrides ToString to return the location that's currently assigned to it for use within the Designer.
 - Zone class now has an EntranceRoom Property for settings the default entrance room for the Zone. This is used by the Runtime and the designer when setting and retrieving the InitialLocation.

Offline Runtime:
 - Now creates a basic player, loads the project and places the player within the entrance room designated by the InitialLocation.Zone
 - Runtime contains code that automatically moves the player to the north during startup. This will be removed, it's only there for testing purposes.
 - Runtime does not print anything to the console yet.
2010-01-31 19:02:06 -08:00
Scionwest_cp
2ec31c0170 Engine:
- Zone.RefreshRoomList method was renamed to Zone.RebuildRoomCollection.

Designer:
 - Room Editor now adjusts all of a Rooms connected doorways to connect to a re-named Room. No need to manually load and edit each Room connected to 'Bedroom' after it was renamed from 'New Room'
2010-01-28 18:56:58 -08:00
Scionwest_cp
5f9a707b4c Engine:
- Added Character class PlayerBasic for the lowest authorized level
 - Added Character class PlayerAdmin that will provide some additional higher level authorized commands
 - Added Character class PlayerGM that will provide high level authorized commands
 - Added Factions class for future use of factions
 - Added Class class for future use of classes
 - Added Race class for future use of Races
 - Added NPCFriendly class for future use of Friendly NPCs
 - Added NPCHostile class for future use of Monster NPCs
 - Added CommandWalk class for future walk command
 - Added CommandGMTeleport class for future GM teleporting support.
 - Added Description property to the Door class.
2010-01-22 22:47:37 -08:00
Scionwest_cp
85aae88e34 Engine:
- Added GameCommands namespace for holding all of the game command classes
 - Added ICommand interface for game commands.
 - Added IPlayer interface for player classes.
 - Added CommandLook for prepping the Test Runtime for looking at environments.

Misc:
 - Updated Mud Designer Project Roadmap file (MudDesigner.pod)
2010-01-22 22:14:08 -08:00
Scionwest_cp
7c72fbb2e8 - Added Project Design Document (Not finished)
- Added Project Roadmap (Not finished, Requires OpenProject to be installed http://openproj.org/openproj)
 - Included a Readme file.
2010-01-22 21:45:15 -08:00
Scionwest_cp
d78b4e196e Designer:
- Doorway Linking is now completed.
 - Auto-Generated Rooms are now linked back to the Doorway that created them.

Runtime:
 - Began implementing a very simple Runtime for offline testing.

Engine:
 - Room Editor now saves a Room after it has had a Doorway change made to it.
 - Fixed the missing Doorways issue after closing the Room Editor.
2010-01-22 08:43:41 -08:00
Scionwest_cp
f919539a89 Designer:
- 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.
2010-01-21 23:33:14 -08:00
Scionwest_cp
0811af95b1 Engine:
- Deleted old Doorway editor
2010-01-21 22:03:03 -08:00
Scionwest_cp
de726021df Designer:
- Redesigned Doorway Manager
 - Reworked the Door class
 - Reworked the Room Class.
2010-01-21 22:02:36 -08:00
Scionwest_cp
2a88141b02 - Room Linking development started
- 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.
2010-01-19 18:44:18 -08:00
Scionwest_cp
6c8678a624 Major Changes:
- Widget Development Resumed.
 - Corrected instances where the Project Information was not being saved.
 - Corrected instances where deleting a Realm was not happening correctly.

Minor Changes:
 - Realm Widget UI Tweaks
 - Realm Widget Improvements
 - Code Optimizations
2010-01-19 15:43:43 -08:00
Scionwest_cp
d5ebbe186f Major Changes:
- Finalized Adding/Removing Zones from within Realms (their Rooms included.)
 - Finalized Deleting objects.
 - Rooms can now be loaded and edited after Saving.

Minor Changes:
 - Code Optimizations
 - Object Property organizing improved.
2010-01-19 15:08:19 -08:00
Scionwest_cp
56ce8667ff Engine:
- UIRealmControl Removal of Zones added within a Realm was re-wrote to resemble the new Add Zone code.
2010-01-19 14:08:28 -08:00
Scionwest_cp
0395acb0f9 Designer:
- 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.
2010-01-19 13:09:33 -08:00
Scionwest_cp
af4dc2ad7a Designer:
- 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.
2010-01-19 07:01:44 -08:00
Scionwest_cp
a98e2bc069 Designer:
- Corrected Project Information not being displayed when loaded for editing
 - Re-wrote Designer Save code to use the objects save code instead of FileManager. Resulted in 26% less code and cleaner source.
 - Project Explorer now checks Saved State of currently loaded object just like the Right-Click->Edit Object menu item does.

Engine:
 - ProjectInformation.Save() now implemented.
 - BaseObject.Save() now implemented. All objects inheriting from BaseObject can save itself. Including all Environment objects (Realms,Zones, Rooms) and Currency objects.
2010-01-18 21:31:47 -08:00
Scionwest_cp
42e6fef109 Major Changes:
- 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.
2010-01-18 20:46:43 -08:00
Scionwest_cp
afd74530cd Engine:
- 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
2010-01-17 18:58:26 -08:00
Scionwest_cp
9311435007 Refresh of repo required. 2010-01-17 18:56:44 -08:00
Scionwest_cp
dafcc55437 Mud Engine:
- Removed Attributes namespace and classes. Was not being used.
2010-01-10 18:00:49 -08:00
Scionwest_cp
98857cc0de Mud Designer:
- 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
2010-01-10 17:57:52 -08:00
Scionwest_cp
ecd2645421 Mud Engine:
- Realm.Zones Property Category changed from "Realm Information" to "Environment Information"
 - Changed Zone.Rooms from internal to public
 - Added a custom Editor for the Zone.Rooms property.
 - Room Editing development started. Rooms are created and managed within the currently loaded Zone.
 - UIRealmEditor had un-unused code removed.
 - Added UIRoomEditor. Manages the UIRoomControl.
 - Added UIRoomControl, which will be the editor used when managing Rooms within a Zone Object.
2010-01-09 18:53:15 -08:00
Scionwest_cp
30a5ce61a3 Mud Designer:
- Deleted the Editors folder within the solution
 - Disabled the Edit Menu Item until it's menu items can be implemented
 - File->Exit now works
 - Help->About now works.
2010-01-09 18:19:14 -08:00
Scionwest_cp
774a5d9edd - Deleted Mud Designer ToolKit.mm
Mud Designer:
 - Deleted the previous Mud Designer Editors.
2010-01-09 17:17:15 -08:00
Scionwest_cp
8b55b95dc1 Mud Engine:
- UIRealmControl now checks to make sure the Zone directory exists prior to accessing it. Fixes the exception being thrown due to it.
2010-01-09 17:14:36 -08:00
Scionwest_cp
8d5a2b184c Test Designer:
- Fixed the Object Properties grid not saving objects.
 - Fixed 'Save Object' button not working.
2010-01-09 17:10:13 -08:00
Scionwest_cp
ea8fcf0700 Test Designer:
- Added missing RealmWidget control.
2010-01-09 17:04:29 -08:00
Scionwest_cp
f9883bc943 Test Designer:
- Changed Title bar text.
2010-01-09 17:01:28 -08:00
Scionwest_cp
ae672a29e1 Test Designer:
- 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.
2010-01-09 16:44:05 -08:00
Scionwest_cp
83311d4200 Test Designer:
- Designer can now create, save and load Realms.
 - Saved Realms are displayed within the Designs main startup UI fur future usage.
2010-01-08 21:57:51 -08:00
Scionwest_cp
f24d2bffa5 Test Designer:
- Project Information can now be edited after a currency has been created via the Project->Game Management->Project Information menu item or right clicking on Game.xml within the Project Explorer.
2010-01-07 19:54:32 -08:00
Scionwest_cp
0e2f0439ec Test Designer:
- Fixed crashing when users tried to edit the root node in the Project Explorer.
 - Added missing RealmExplorer control.

Note: Use the Project->Game Management->Currency Editor to create a new Currency. Then click Save Object to save the currency. You can save the initial Project Information shown at startup, however once a currency is created the project info cannot be retrieved until next startup. You can RIGHT click on the Project Explorer and edit object shown in the explorer.
2010-01-07 19:47:36 -08:00
Scionwest_cp
60aa7d8c33 Test Designer:
- Now allows for saving and loading of ProjectInformation and Currencies.
 - Realm Explorer control created for future Visual World system.
2010-01-07 19:43:16 -08:00
Scionwest_cp
6227b3f690 Mud Engine:
- ProjectInformation class now sets GameTitle to "New Game" when instanced.

Test Designer:
 - User Interface designs
 - Implemented Project Saving
2010-01-07 17:44:01 -08:00
Scionwest_cp
ee3a8c2b60 Mud Designer:
- Added a new designer that I will begin working on and testing UITypeEditors with. Future plan is to migrate all editors into a single editor relying heavily on UITypeEditors to flesh it out.
 - Selecting the Script property within the Designer.cs form executes the UIScriptEditor class and installs the UIScriptControl into the Designers control collection.
 - Clicking close on the Designer.cs GUI showcases clearing the controls of custom UITypeEditors and how the results of the editing is saved into the object that the PropertyGrid is editing.

Mud Engine:
 - Added a UIScriptControl User Control that the UIScriptEditor TypeEditor uses to install directly into the new Test Designer.
2010-01-03 20:48:25 -08:00
Scionwest_cp
90b7ca1a87 Mud Engine:
- 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.
2010-01-03 20:01:36 -08:00
Scionwest_cp
02c7bbca86 Mud Designer:
- Realm Explorer now deletes whole realms correctly.
 - Zone Builder no longer crashes when trying to open after the default Realm has been deleted. No Realm is loaded instead. Some initial setup code is skipped due to the error generated. This will be corrected in the next couple SVN commits.
2010-01-03 16:12:49 -08:00
Scionwest_cp
49a6e31019 Mud Designer:
- 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.
2010-01-03 14:39:15 -08:00
Scionwest_cp
a8ea7eecb8 Mud Designer:
- Added web link to the launcher for the new Mud Designer Forums.
2010-01-03 14:23:54 -08:00
Scionwest_cp
4f5fd633ba Zone Builder:
- Doorways now show the Travel Direction the opposite doorway uses within the pop up tooltip.
 - Doorway tooltips now show the Connected Room information in the doors popup tooltip when loaded.

DoorwayManager:
 - Saves the connected rooms traveldirection within the Doorway now.

MudEngine:
 - Door.ConnectedRoom struct now contains a TravelDirection Field for finding out what travel direction a connected room uses to return back to the original room.
 - GameScript class added within the GameManagement namespace.
2009-12-29 17:06:10 -08:00
Scionwest_cp
968ab21e5a - Both linked Rooms are now linked together via the Doorway Manager now. However the 2nd Room does not show the linked effects until the Zone is re-loaded. This will be addressed shortly.
- Rooms no longer install duplicate doorways. If a doorway exists, it removes it and installs the new door.
2009-12-09 15:03:01 -08:00
Scionwest_cp
7da8fcfea9 - Rooms can now be linked together via the Doorway Manager. Use the Doorway manager for linking rooms even if they are contained within the same Zone as the same zone reverse door install is not implemented yet.
- TravelDirections now contains a TravelDirections.GetTravelDirectionValue which converts a string representing a direction into the corresponding AvailableTravelDirections enum value.
2009-12-08 20:28:52 -08:00
Scionwest_cp
37b2d42b4c - Toolkit now saves and loads settings file
- 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.
2009-12-08 17:27:55 -08:00
Scionwest_cp
d96a175372 - Added Settings for storing various Toolkit settings. 2009-12-08 16:44:24 -08:00
Scionwest_cp
7005b869e4 - Zone Builder now loads/saves rooms correctly.
- Zones now contain a RefreshRoomList() method for updating the collection of Rooms. MUST be called anytime a room is changed within the Zone. 
 - Removed the forced Realm constructor for zones.

Realm, Zone and Room creation is now working again.
2009-12-08 16:11:42 -08:00
Scionwest_cp
f9ee12aab2 - Removed forced exception for parameterless Zone instancing. Was throwing an exception during deserialization of the xml documention.
- Fixed the Select a Realm form from crashing when the listbox was clicked and no Realm was selected.
2009-12-08 15:54:47 -08:00
Scionwest_cp
44431ecade - Zones build their Room collection during instancing.
- 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.
2009-12-08 15:49:43 -08:00
Scionwest_cp
f35e1b2ea7 Removed Realm information from Door.cs and added ConnectedRoom struct for holding the realm, zone and room name of the Room connected with the doorway. 2009-12-08 12:03:46 -08:00
Scionwest_cp
dfbc92c5d0 Zone Builder now creates Zones within different Realms, save and loads them. You can have two Realms, each containing a Zone with the exact same name with the new folder setup. 2009-12-08 11:53:38 -08:00
Scionwest_cp
41047da6d1 Final commit with new changes. Class namespaces changed and editors changed. New classes added and Room Designer deleted. 2009-12-08 10:35:59 -08:00