- 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
132 lines
4 KiB
C#
132 lines
4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.Xml.Serialization;
|
|
using System.Xml;
|
|
|
|
//MudEngine
|
|
using MudDesigner.MudEngine.Attributes;
|
|
using MudDesigner.MudEngine.FileSystem;
|
|
using MudDesigner.MudEngine.GameObjects;
|
|
using MudDesigner.MudEngine.GameObjects.Environment;
|
|
|
|
namespace MudDesigner.MudEngine.GameManagement
|
|
{
|
|
/// <summary>
|
|
/// Manages all of the projects settings.
|
|
/// </summary>
|
|
[XmlInclude(typeof(StartingLocation))]
|
|
[XmlInclude(typeof(Currency))]
|
|
public class ProjectInformation
|
|
{
|
|
public enum TimeOfDayOptions
|
|
{
|
|
AlwaysDay,
|
|
AlwaysNight,
|
|
Transition,
|
|
}
|
|
|
|
[Category("Company Settings")]
|
|
[Description("The name of the Company or Author building the game.")]
|
|
/// <summary>
|
|
/// Gets or Sets the name of the company
|
|
/// </summary>
|
|
public string CompanyName { get; set; }
|
|
|
|
[Category("Company Settings")]
|
|
[Description("The website URL that a player can visit to view additional information related to the game")]
|
|
/// <summary>
|
|
/// Gets or Sets the companies website for this project
|
|
/// </summary>
|
|
public string Website { get; set; }
|
|
|
|
[Category("Project Settings")]
|
|
[Description("The name of the game displayed to the users, and title bar of the runtime.")]
|
|
public string GameTitle { get; set; }
|
|
|
|
[Category("Project Settings")]
|
|
[Description("Enable or Disable Auto-saving of players when the player travels")]
|
|
/// <summary>
|
|
/// Gets or Sets if the game autosaves when the player changes locations.
|
|
/// </summary>
|
|
public bool AutoSave { get; set; }
|
|
|
|
[Category("Project Settings")]
|
|
[Description("Hide Room names from being outputted to the console.")]
|
|
/// <summary>
|
|
/// Gets or Sets if room names are hidden during console output.
|
|
/// </summary>
|
|
public bool HideRoomNames { get; set; }
|
|
|
|
[Category("Day Management")]
|
|
[Description("Set what time of day the world will take place in.")]
|
|
public TimeOfDayOptions TimeOfDay
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Category("Day Management")]
|
|
[Description("Set how long in minutes it takes to transition from day to night.")]
|
|
public int TimeOfDayTransition
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Category("Day Management")]
|
|
[Description("Sets how long in minutes a day lasts in the game world.")]
|
|
public int DayLength
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Category("Project Settings")]
|
|
[Description("The current working version of the game.")]
|
|
public string Version { get; set; }
|
|
|
|
[Category("Game Currency")]
|
|
[Description("Sets the amount that the base currency is valued at.")]
|
|
public uint BaseCurrencyAmount { get; set; }
|
|
|
|
|
|
[Category("Game Currency")]
|
|
public string BaseCurrencyName { get; set; }
|
|
|
|
|
|
|
|
//TODO: Add Party support.
|
|
[Category("Project Settings")]
|
|
[Description("If enabled, all objects will be loaded during server startup resulting in a slower server start time, but faster load time during gameplay")]
|
|
public bool PreCacheObjects { get; set; }
|
|
|
|
[Browsable(false)]
|
|
public List<Currency> CurrencyList { get; set; }
|
|
|
|
[Browsable(false)]
|
|
public string ProjectPath { get; set; }
|
|
|
|
[Browsable(false)]
|
|
public StartingLocation InitialLocation
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Browsable(false)]
|
|
public string Story
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
public ProjectInformation()
|
|
{
|
|
CurrencyList = new List<Currency>();
|
|
GameTitle = "New Game";
|
|
}
|
|
}
|
|
}
|