public static UnitData GetData(string data) { UnitData unitData = new UnitData(); StringReader reader = new StringReader(data); string line = ""; List<Unit> unitList = null; int lineNumber = 0; while ((line = reader.ReadLine()) != null) { lineNumber++; if (line == "[/UNITDATA]") { break; } else if (line == "[ITEMS]") { unitList = unitData.Items; } else if (line == "[MONSTERS]") { unitList = unitData.Monsters; } else if (line == "[PLAYERS]") { unitList = unitData.Players; } else if (line == "[PROPS]") { unitList = unitData.Props; } else if (line == "[UNIT]") { if (unitList == null) { throw new TxtConverterException(String.Format("Units need to be in a group! (Line: {0})", lineNumber)); } unitList.Add(ReadUnit(ref reader, ref lineNumber)); } } reader.Close(); reader.Dispose(); return unitData; }
public static string GetString(UnitData unitData) { StringBuilder builder = new StringBuilder(); builder.AppendLine("[UNITDATA]"); if (unitData.Items.Count > 0) { builder.AppendLine(" [ITEMS]"); foreach (var unit in unitData.Items) { builder.AppendUnit(unit); } builder.AppendLine(" [/ITEMS]"); } if (unitData.Monsters.Count > 0) { builder.AppendLine(" [MONSTERS]"); foreach (var unit in unitData.Monsters) { builder.AppendUnit(unit); } builder.AppendLine(" [/MONSTERS]"); } if (unitData.Players.Count > 0) { builder.AppendLine(" [PLAYERS]"); foreach (var unit in unitData.Players) { builder.AppendUnit(unit); } builder.AppendLine(" [/PLAYERS]"); } if (unitData.Props.Count > 0) { builder.AppendLine(" [PROPS]"); foreach (var unit in unitData.Props) { builder.AppendUnit(unit); } builder.AppendLine(" [/PROPS]"); } builder.Append("[/UNITDATA]"); return builder.ToString(); }
private void WriteUnitDataFile(UnitData unitData) { _writer.Write(unitData.Items.Count); foreach (var unit in unitData.Items) { WriteUnit(unit); } _writer.Write(unitData.Monsters.Count); foreach (var unit in unitData.Monsters) { WriteUnit(unit); } _writer.Write(unitData.Players.Count); foreach (var unit in unitData.Players) { WriteUnit(unit); } _writer.Write(unitData.Props.Count); foreach (var unit in unitData.Props) { WriteUnit(unit); } }
private UnitData ReadUnitDataFile() { UnitData rawFile = new UnitData(); int itemCount = _reader.ReadInt32(); for (int i = 0; i < itemCount; i++) { rawFile.Items.Add(ReadUnit()); } int monsterCount = _reader.ReadInt32(); for (int i = 0; i < monsterCount; i++) { rawFile.Monsters.Add(ReadUnit()); } int playerCount = _reader.ReadInt32(); for (int i = 0; i < playerCount; i++) { rawFile.Players.Add(ReadUnit()); } int propCount = _reader.ReadInt32(); for (int i = 0; i < propCount; i++) { rawFile.Props.Add(ReadUnit()); } return rawFile; }