using System;
using System.Collections.Generic;
using System.Text;

namespace Halo3Map.Data
{
    public class DescriptionAttribute : Attribute
    {
        private string description;
        public string Description { get { return description; } }
        public DescriptionAttribute(string Description) { description = Description; }
    }

    public class SizeAttribute : Attribute
    {
        private int size;
        public int Size { get { return size; } }
        public SizeAttribute(int Size) { size = Size; }
    }

    public class StringAttribute : Attribute
    {
        private int size = 32;
        public int Size { get { return size; } }

        private StringType stringType = StringType.Ascii;
        public StringType StringType
        {
            get { return stringType; }
        }

        public StringAttribute() { }
        public StringAttribute(int Size) { size = Size; }
        public StringAttribute(StringType Type) { stringType = Type; }
        public StringAttribute(StringType Type, int Size) { stringType = Type; size = Size; }
    }

    public enum StringType
    {
        Ascii,
        Unicode,
    }
    /// <summary>
    /// Stores information about a .cs plugin
    /// </summary>
    public class TagAttribute : Attribute
    {        
        private string author;
        /// <summary>
        /// Gets the Author of the plugin
        /// </summary>
        public string Author { get { return author; } }

        private string tagType;
        /// <summary>
        /// Gets the plugin type
        /// </summary>
        public string TagType { get { return tagType; } }

        private double version;
        /// <summary>
        /// Gets the plugin version
        /// </summary>
        public double Version { get { return version; } }

        public TagAttribute(string Author, string TagType, double Version)
        {
            author = Author;
            tagType = TagType;
            version = Version;
        }
    }
}
