예제 #1
0
 public virtual void Serialize(Stream stream, IEnumerable <World> worlds, SectorSerializeOptions options)
 {
     using (var writer = new StreamWriter(stream, Encoding))
     {
         Serialize(writer, worlds, options);
     }
 }
예제 #2
0
        public override void Serialize(TextWriter writer, IEnumerable <World> worlds, SectorSerializeOptions options)
        {
            List <string> cols = new List <string> {
                "Hex",
                "Name",
                "UWP",
                "Remarks",
                "{Ix}",
                "(Ex)",
                "[Cx]",
                "N",
                "B",
                "Z",
                "PBG",
                "W",
                "A",
                "Stellar"
            };

            if (options.includeRoutes)
            {
                cols.Add("Routes");
            }

            ColumnSerializer formatter = new ColumnSerializer(cols);

            formatter.SetMinimumWidth("Name", 20);
            formatter.SetMinimumWidth("Remarks", 20);

            foreach (World world in worlds.OrderBy(world => world.SS))
            {
                List <string> row = new List <string> {
                    options.sscoords?world.SubsectorHex : world.Hex,
                           world.Name,
                           world.UWP,
                           world.Remarks,
                           world.Importance,
                           world.Economic,
                           world.Cultural,
                    DashIfEmpty(world.Nobility),
                    DashIfEmpty(world.Bases),
                    DashIfEmpty(world.Zone),
                    world.PBG,
                    world.Worlds > 0 ? world.Worlds.ToString() : "",
                    world.Allegiance,
                    world.Stellar
                };
                if (options.includeRoutes)
                {
                    row.Add(world.Routes);
                }
                formatter.AddRow(row);
            }
            formatter.Serialize(writer, options.includeHeader);
        }
예제 #3
0
        public override void Serialize(TextWriter writer, IEnumerable <World> worlds, SectorSerializeOptions options)
        {
            if (options.includeHeader)
            {
                foreach (var line in new string[] {
                    " 1-14: Name",
                    "15-18: HexNbr",
                    "20-28: UWP",
                    "   31: Bases",
                    "33-47: Codes & Comments",
                    "   49: Zone",
                    "52-54: PBG",
                    "56-57: Allegiance",
                    "59-74: Stellar Data",
                    "",
                    "....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8",
                    ""
                })
                {
                    writer.WriteLine(line);
                }
            }

            const string worldFormat = "{0,-14}{1,4} {2,9}  {3,1} {4,-15} {5,1}  {6,3} {7,2} {8,-15}";

            foreach (World world in worlds.OrderBy(world => world.SS))
            {
                writer.WriteLine(worldFormat,
                                 world.Name.Truncate(14),
                                 options.sscoords ? world.SubsectorHex : world.Hex,
                                 world.UWP,
                                 world.LegacyBaseCode,
                                 world.Remarks.Truncate(15),
                                 world.Zone,
                                 world.PBG,
                                 world.LegacyAllegiance.Truncate(2),
                                 world.Stellar.Truncate(15)
                                 );
            }
        }
예제 #4
0
 public abstract void Serialize(TextWriter writer, IEnumerable <World> worlds, SectorSerializeOptions options);
예제 #5
0
 public override void Serialize(TextWriter writer, IEnumerable <World> worlds, SectorSerializeOptions options)
 {
     if (options.includeHeader)
     {
         writer.WriteLine(string.Join("\t", new string[] {
             "Sector", "SS", "Hex", "Name", "UWP", "Bases", "Remarks", "Zone", "PBG", "Allegiance", "Stars",
             "{Ix}", "(Ex)", "[Cx]", "Nobility", "W", "RU"
         }));
     }
     foreach (World world in worlds.OrderBy(world => world.Subsector))
     {
         writer.WriteLine(string.Join("\t", new string[] {
             world.Sector.Abbreviation,
             world.SS,
             options.sscoords ? world.SubsectorHex : world.Hex,
             world.Name,
             world.UWP,
             world.Bases,
             world.Remarks,
             world.Zone,
             world.PBG,
             world.Allegiance,
             world.Stellar,
             world.Importance,
             world.Economic,
             world.Cultural,
             world.Nobility,
             world.Worlds > 0 ? world.Worlds.ToString(CultureInfo.InvariantCulture) : "",
             world.ResourceUnits.ToString(CultureInfo.InvariantCulture)
         }));
     }
 }