private static void AppendLevelSet(this StringBuilder builder, LevelSet levelSet) { builder.AppendLine(" [LEVELSET]"); builder.AppendFormat(" <STRING>File:{0}\r\n", levelSet.File); if (levelSet.GUIDS.Count > 0) { builder.AppendLine(" [GUIDS]"); foreach (var guid in levelSet.GUIDS) { builder.AppendFormat(" <INTEGER64>{0}\r\n", guid); } builder.AppendLine(" [/GUIDS]"); } builder.AppendLine(" [/LEVELSET]"); }
private void WriteLevelset(LevelSet levelset) { WriteString(levelset.File); }
private LevelSet ReadLevelset() { LevelSet levelSet = new LevelSet(); levelSet.File = ReadString(); return levelSet; }
private static LevelSet ReadLevelSet(ref StringReader reader, ref int lineNumber) { LevelSet levelSet = new LevelSet(); string line; int startLine = lineNumber; bool[] hasSet = new bool[1]; while ((line = reader.ReadLine()) != null) { lineNumber++; if (line == "[/LEVELSET]") { break; } else if (line.StartsWith("<STRING>File:")) { line = line.Replace("<STRING>File:", "").Trim(); levelSet.File = line; hasSet[0] = true; } else if (line.StartsWith("[GUIDS]")) { while ((line = reader.ReadLine()) != null) { lineNumber++; if (line == "[/GUIDS]") { break; } else if(line.StartsWith("//") || line.StartsWith("#")) { continue; } else { line = line.Replace("<INTEGER64>", "").Trim(); long guid; if (long.TryParse(line, out guid)) { levelSet.GUIDS.Add(guid); } else { throw new TxtConverterException(String.Format("Any GUID must be a 64bit Integer. (Line: {0} | Current: {1})", lineNumber, line)); } } } } else if(line.StartsWith("//") || line.StartsWith("#")) { continue; } else { throw new TxtConverterException(String.Format("Unknown unit property. (Line: {0})", lineNumber)); } } Validate(hasSet, startLine); return levelSet; }