Example #1
0
        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;
        }
Example #2
0
        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();
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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;
        }