private static Skill ReadSkill(ref StringReader reader, ref int lineNumber) { Skill skill = new Skill(); string line; int startLine = lineNumber; bool[] hasSet = new bool[3]; while ((line = reader.ReadLine()) != null) { lineNumber++; if (line == "[/SKILL]") { break; } else if (line.StartsWith("<INTEGER64>GUID:")) { line = line.Replace("<INTEGER64>GUID:", "").Trim(); long guid; if (long.TryParse(line, out guid)) { skill.GUID = guid; hasSet[0] = true; } else { throw new TxtConverterException(String.Format("GUID must be a 64bit Integer. (Line: {0} | Current: {1})", lineNumber, line)); } } else if (line.StartsWith("<STRING>Name:")) { line = line.Replace("<STRING>Name:", "").Trim(); skill.Name = line; hasSet[1] = true; } else if (line.StartsWith("<STRING>File:")) { line = line.Replace("<STRING>File:", "").Trim(); skill.File = line; hasSet[2] = true; } else if(line.StartsWith("//") || line.StartsWith("#")) { continue; } else { throw new TxtConverterException(String.Format("Unknown unit property. (Line: {0})", lineNumber)); } } Validate(hasSet, startLine); return skill; }
private static void AppendSkill(this StringBuilder builder, Skill skill) { builder.AppendLine(" [SKILL]"); builder.AppendFormat(" <INTEGER64>GUID:{0}\r\n", skill.GUID); builder.AppendFormat(" <STRING>Name:{0}\r\n", skill.Name); builder.AppendFormat(" <STRING>File:{0}\r\n", skill.File); builder.AppendLine(" [/SKILL]"); }
private void WriteSkill(Skill skill) { WriteString(skill.Name); WriteString(skill.File); _writer.Write(skill.GUID); }
private Skill ReadSkill() { Skill skill = new Skill(); skill.Name = ReadString(); skill.File = ReadString(); skill.GUID = _reader.ReadInt64(); return skill; }