#region Arthea License /*********************************************************************** * Arthea MUD by R. Jennings (2007) http://arthea.googlecode.com/ * * By using this code you comply with the Artistic and GPLv2 Licenses. * ***********************************************************************/ #endregion using System.Collections.Generic; using System.Text; using Arthea.Connections.Players; using Arthea.Creation; using Arthea.Interfaces; namespace Arthea.Collections { /// <summary> /// Implementation of a string list. /// </summary> public class StringList : List<String>, CustomEditType { #region [rgn] Properties (1) /// <summary> /// Gets the <see cref="System.Boolean"/> with the specified arg. /// </summary> /// <value></value> public bool this[String arg] { get { return Contains(arg); } } #endregion [rgn] #region [rgn] Methods (2) // [rgn] Public Methods (2) /// <summary> /// Adds the specified STR. /// </summary> /// <param name="str">The STR.</param> public new void Add(String str) { if (!Contains(str)) base.Add(str); } /// <summary> /// Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>. /// </summary> /// <returns> /// A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>. /// </returns> public override string ToString() { StringBuilder buf = new StringBuilder(); foreach (string str in this) { buf.Append(str); buf.Append(","); } if (buf.Length > 0) buf.Remove(buf.Length - 1, 1); return buf.ToString(); } #endregion [rgn] #region CustomEditType Members /// <summary> /// Sets the value. /// </summary> /// <param name="player">The player.</param> /// <param name="editer">Editer information.</param> /// <param name="argument">The argument.</param> public void CustomEdit(Player player, OlcField editer, String argument) { if (Contains(argument)) Remove(argument); else Add(argument); player.WriteLine("{0} toggled.", editer.Name); } #endregion } }