protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            Type tType    = typeof(T);
            Type readType = tType;

            if (tType.IsEnum)
            {
                Value = ele.ToEnum <T>();
                return;
            }

            string typeName = readType.FullName;


            switch (typeName)
            {
            case "System.Byte":
                Value = (T)(object)ele.ToByte();
                break;

            case "System.SByte":
                Value = (T)(object)ele.ToSByte();
                break;

            case "System.Char":
                Value = (T)(object)ele.ToChar();
                break;

            case "System.UInt16":
                Value = (T)(object)ele.ToUInt16();
                break;

            case "System.Int16":
                Value = (T)(object)ele.ToInt16();
                break;

            case "System.UInt32":
                Value = (T)(object)ele.ToUInt32();
                break;

            case "System.Int32":
                Value = (T)(object)ele.ToInt32();
                break;

            case "System.Single":
                Value = (T)(object)ele.ToSingle();
                break;

            case "System.UInt64":
                Value = (T)(object)ele.ToUInt64();
                break;

            case "System.Int64":
                Value = (T)(object)ele.ToInt64();
                break;

            case "System.Byte[]":
                Value = (T)(object)ele.ToBytes();
                break;

            case "System.Char[]":
                Value = (T)(object)ele.ToChars();
                break;

            case "System.String":
                string outString = ele.Value;
                Value = (T)(object)outString;
                break;

            case "ESPSharp.DataTypes.Color":
                var color = new DataTypes.Color();
                color.ReadXML(ele, master);
                Value = (T)(object)color;
                break;

            case "ESPSharp.DataTypes.XYFloat":
                var temp = new DataTypes.XYFloat();
                temp.ReadXML(ele, master);
                Value = (T)(object)temp;
                break;

            default:
                throw new NotImplementedException(typeName + " is not yet implemented.");
            }
        }