using System; using System.Collections.Generic; using System.Linq; using System.Text; using MudEngine.Core; using MudEngine.Core.Interfaces; using MudEngine.Game.Characters; using MudEngine.Game; using MudEngine.GameScripts; namespace MudEngine.Game.Environment { public class Environment : BaseScript, IGameComponent, ISavable, IUpdatable { /// /// Gets or Sets the filename for this environment when it is saved. /// public string Filename { get; set; } /// /// Gets or Sets if this object is enabled. When disabled, characters can not traverse it. /// If a character has the Role of Builder or higher than can enter the Environment reqgardless /// if it is enabled or not. If the RequiredRole for this environment is set to Admin than /// only a Admin may enter. /// public Boolean Enabled { get; set; } /// /// Gets what the minimum Required Role is in order to access this environment. /// public CharacterRoles RequiredRole { get; private set; } public Environment(StandardGame game, String name, String description) : base(game, name, description) { //Default to Builder or higher when created. //Builders will need to set this to CharacterRoles.Player when environment construction is completed. this.RequiredRole = CharacterRoles.Builder; //Always default the environment to disabled so that players //can't access the environment during construction. this.Enabled = false; } public virtual void Initialize() { } public virtual void Destroy() { this.Enabled = false; } public override bool Save(String filename, Boolean ignoreFileWrite) { base.Save(filename, true); SaveData.AddSaveData("Filename", this.Filename); SaveData.AddSaveData("Enabled", this.Enabled.ToString()); SaveData.AddSaveData("RequiredRole", this.RequiredRole.ToString()); if (!ignoreFileWrite) return this.SaveData.Save(filename); else return true; } public override void Load(string filename) { base.Load(filename); try { this.Filename = this.SaveData.GetData("Filename"); } catch { LoadFailedMessage("Filename"); } this.Enabled = Convert.ToBoolean(this.SaveData.GetData("Enabled")); String role = this.SaveData.GetData("RequiredRole"); this.RequiredRole = CharacterRole.GetRole(role); } public void Update() { throw new NotImplementedException(); } } }