- 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
58 lines
1.9 KiB
C#
58 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.IO;
|
|
using System.ComponentModel;
|
|
|
|
using MudDesigner.MudEngine.FileSystem;
|
|
using MudDesigner.MudEngine.GameObjects;
|
|
using MudDesigner.MudEngine.UITypeEditors;
|
|
|
|
namespace MudDesigner.MudEngine.GameObjects.Environment
|
|
{
|
|
public class Realm : BaseObject
|
|
{
|
|
|
|
[Category("Environment Information")]
|
|
[Description("A collection of Zones that are contained within this Realm. Players can traverse the world be traveling through Rooms that are contained within Zones. Note that it is not required to place a Zone into a Realm.")]
|
|
[EditorAttribute(typeof(UIRealmEditor), typeof(System.Drawing.Design.UITypeEditor))]
|
|
public List<string> Zones { get; set; }
|
|
|
|
public Realm()
|
|
{
|
|
Zones = new List<string>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the requested Zone if the Zone exists within this Realm.
|
|
/// </summary>
|
|
/// <param name="zoneName"></param>
|
|
/// <returns></returns>
|
|
public Zone GetZone(string zoneName)
|
|
{
|
|
string zoneFilename = "";
|
|
//correct the zonename if needed
|
|
if (!zoneName.EndsWith(".zone"))
|
|
zoneFilename = zoneName + ".zone";
|
|
else
|
|
{
|
|
zoneName = Path.GetFileNameWithoutExtension(zoneName);
|
|
zoneFilename = zoneName;
|
|
}
|
|
|
|
string zonePath = FileManager.GetDataPath(this.Name, zoneFilename);
|
|
zonePath = Path.Combine(zonePath, zoneName);
|
|
zoneFilename = Path.Combine(zonePath, zoneFilename);
|
|
|
|
if (File.Exists(zoneFilename))
|
|
{
|
|
Zone z = new Zone();
|
|
z = (Zone)FileManager.Load(zoneFilename, z);
|
|
return z;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|