public static KerningPair ReadText(IReadOnlyList <string> lineSegments, out int amount)
        {
            var first  = TextFormatUtility.ReadInt("first", lineSegments);
            var second = TextFormatUtility.ReadInt("second", lineSegments);

            amount = TextFormatUtility.ReadInt("amount", lineSegments);

            return(new KerningPair(first, second));
        }
 public void WriteText(TextWriter textWriter, int id)
 {
     TextFormatUtility.WriteInt("id", id, textWriter);
     TextFormatUtility.WriteInt("x", X, textWriter);
     TextFormatUtility.WriteInt("y", Y, textWriter);
     TextFormatUtility.WriteInt("width", Width, textWriter);
     TextFormatUtility.WriteInt("height", Height, textWriter);
     TextFormatUtility.WriteInt("xoffset", XOffset, textWriter);
     TextFormatUtility.WriteInt("yoffset", YOffset, textWriter);
     TextFormatUtility.WriteInt("xadvance", XAdvance, textWriter);
     TextFormatUtility.WriteInt("page", Page, textWriter);
     TextFormatUtility.WriteEnum("chnl", Channel, textWriter);
 }
Exemple #3
0
        public void WriteText(TextWriter textWriter, int pages)
        {
            TextFormatUtility.WriteInt("lineHeight", LineHeight, textWriter);
            TextFormatUtility.WriteInt("base", Base, textWriter);
            TextFormatUtility.WriteInt("scaleW", ScaleWidth, textWriter);
            TextFormatUtility.WriteInt("scaleH", ScaleHeight, textWriter);

            TextFormatUtility.WriteInt("pages", pages, textWriter);

            TextFormatUtility.WriteBool("packed", Packed, textWriter);

            TextFormatUtility.WriteEnum("alphaChnl", AlphaChannel, textWriter);
            TextFormatUtility.WriteEnum("redChnl", RedChannel, textWriter);
            TextFormatUtility.WriteEnum("greenChnl", GreenChannel, textWriter);
            TextFormatUtility.WriteEnum("blueChnl", BlueChannel, textWriter);
        }
        public static Character ReadText(IReadOnlyList <string> lineSegments, out int id)
        {
            id = TextFormatUtility.ReadInt("id", lineSegments);

            return(new Character
            {
                X = TextFormatUtility.ReadInt("x", lineSegments),
                Y = TextFormatUtility.ReadInt("y", lineSegments),
                Width = TextFormatUtility.ReadInt("width", lineSegments),
                Height = TextFormatUtility.ReadInt("height", lineSegments),
                XOffset = TextFormatUtility.ReadInt("xoffset", lineSegments),
                YOffset = TextFormatUtility.ReadInt("yoffset", lineSegments),
                XAdvance = TextFormatUtility.ReadInt("xadvance", lineSegments),
                Page = TextFormatUtility.ReadInt("page", lineSegments),
                Channel = TextFormatUtility.ReadEnum <Channel>("chnl", lineSegments)
            });
        }
Exemple #5
0
        public static BitmapFontCommon ReadText(IReadOnlyList <string> lineSegments, out int pages)
        {
            var bitmapFontCommon = new BitmapFontCommon();

            bitmapFontCommon.LineHeight  = TextFormatUtility.ReadInt("lineHeight", lineSegments);
            bitmapFontCommon.Base        = TextFormatUtility.ReadInt("base", lineSegments);
            bitmapFontCommon.ScaleWidth  = TextFormatUtility.ReadInt("scaleW", lineSegments);
            bitmapFontCommon.ScaleHeight = TextFormatUtility.ReadInt("scaleH", lineSegments);

            pages = TextFormatUtility.ReadInt("pages", lineSegments);

            bitmapFontCommon.Packed = TextFormatUtility.ReadBool("packed", lineSegments);

            bitmapFontCommon.AlphaChannel = TextFormatUtility.ReadEnum <ChannelData>("alphaChnl", lineSegments);
            bitmapFontCommon.RedChannel   = TextFormatUtility.ReadEnum <ChannelData>("redChnl", lineSegments);
            bitmapFontCommon.GreenChannel = TextFormatUtility.ReadEnum <ChannelData>("greenChnl", lineSegments);
            bitmapFontCommon.BlueChannel  = TextFormatUtility.ReadEnum <ChannelData>("blueChnl", lineSegments);

            return(bitmapFontCommon);
        }
Exemple #6
0
        public static BitmapFontInfo ReadText(IReadOnlyList <string> lineSegments)
        {
            var bitmapFontInfo = new BitmapFontInfo();

            bitmapFontInfo.Face   = TextFormatUtility.ReadString("face", lineSegments, string.Empty);
            bitmapFontInfo.Size   = TextFormatUtility.ReadInt("size", lineSegments);
            bitmapFontInfo.Bold   = TextFormatUtility.ReadBool("bold", lineSegments);
            bitmapFontInfo.Italic = TextFormatUtility.ReadBool("italic", lineSegments);

            bitmapFontInfo.Charset = TextFormatUtility.ReadString("charset", lineSegments, string.Empty);

            bitmapFontInfo.Unicode            = TextFormatUtility.ReadBool("unicode", lineSegments);
            bitmapFontInfo.StretchHeight      = TextFormatUtility.ReadInt("stretchH", lineSegments);
            bitmapFontInfo.Smooth             = TextFormatUtility.ReadBool("smooth", lineSegments);
            bitmapFontInfo.SuperSamplingLevel = TextFormatUtility.ReadInt("aa", lineSegments);

            var padding = TextFormatUtility.ReadValue("padding", lineSegments)?.Split(',');

            if (padding != null)
            {
                bitmapFontInfo.PaddingLeft  = padding.Length > 3 ? int.Parse(padding[3]) : 0;
                bitmapFontInfo.PaddingDown  = padding.Length > 2 ? int.Parse(padding[2]) : 0;
                bitmapFontInfo.PaddingRight = padding.Length > 1 ? int.Parse(padding[1]) : 0;
                bitmapFontInfo.PaddingUp    = padding.Length > 0 ? int.Parse(padding[0]) : 0;
            }

            var spacing = TextFormatUtility.ReadValue("spacing", lineSegments)?.Split(',');

            if (spacing != null)
            {
                bitmapFontInfo.SpacingVertical   = spacing.Length > 1 ? int.Parse(spacing[1]) : 0;
                bitmapFontInfo.SpacingHorizontal = spacing.Length > 0 ? int.Parse(spacing[0]) : 0;
            }

            bitmapFontInfo.Outline = TextFormatUtility.ReadInt("outline", lineSegments);

            return(bitmapFontInfo);
        }
Exemple #7
0
        public void WriteText(TextWriter textWriter)
        {
            TextFormatUtility.WriteString("face", Face ?? string.Empty, textWriter);
            TextFormatUtility.WriteInt("size", Size, textWriter);
            TextFormatUtility.WriteBool("bold", Bold, textWriter);
            TextFormatUtility.WriteBool("italic", Italic, textWriter);

            TextFormatUtility.WriteString("charset", Charset ?? string.Empty, textWriter);

            TextFormatUtility.WriteBool("unicode", Unicode, textWriter);
            TextFormatUtility.WriteInt("stretchH", StretchHeight, textWriter);
            TextFormatUtility.WriteBool("smooth", Smooth, textWriter);
            TextFormatUtility.WriteInt("aa", SuperSamplingLevel, textWriter);

            var padding = $"{PaddingUp},{PaddingRight},{PaddingDown},{PaddingLeft}";

            TextFormatUtility.WriteValue("padding", padding, textWriter);

            var spacing = $"{SpacingHorizontal},{SpacingVertical}";

            TextFormatUtility.WriteValue("spacing", spacing, textWriter);

            TextFormatUtility.WriteInt("outline", Outline, textWriter);
        }
 public void WriteText(TextWriter textWriter, int amount)
 {
     TextFormatUtility.WriteInt("first", First, textWriter);
     TextFormatUtility.WriteInt("second", Second, textWriter);
     TextFormatUtility.WriteInt("amount", amount, textWriter);
 }
        public static BitmapFont ReadText(TextReader textReader)
        {
            var bitmapFont = new BitmapFont();

            while (textReader.Peek() != -1)
            {
                var lineSegments = TextFormatUtility.GetSegments(textReader.ReadLine());

                switch (lineSegments[0])
                {
                case "info":
                {
                    bitmapFont.Info = BitmapFontInfo.ReadText(lineSegments);
                    break;
                }

                case "common":
                {
                    bitmapFont.Common = BitmapFontCommon.ReadText(lineSegments, out var pageCount);
                    bitmapFont.Pages  = new Dictionary <int, string>(pageCount);
                    break;
                }

                case "page":
                {
                    bitmapFont.Pages = bitmapFont.Pages ?? new Dictionary <int, string>();
                    var id   = TextFormatUtility.ReadInt("id", lineSegments);
                    var file = TextFormatUtility.ReadString("file", lineSegments);
                    bitmapFont.Pages[id] = file;
                    break;
                }

                case "chars":
                {
                    var count = TextFormatUtility.ReadInt("count", lineSegments);

                    bitmapFont.Characters = new Dictionary <int, Character>(count);

                    for (var i = 0; i < count; i++)
                    {
                        var characterLineSegments = TextFormatUtility.GetSegments(textReader.ReadLine());
                        var character             = Character.ReadText(characterLineSegments, out var id);
                        bitmapFont.Characters[id] = character;
                    }

                    break;
                }

                case "kernings":
                {
                    var count = TextFormatUtility.ReadInt("count", lineSegments);

                    bitmapFont.KerningPairs = new Dictionary <KerningPair, int>(count);

                    for (var i = 0; i < count; i++)
                    {
                        var kerningLineSegments = TextFormatUtility.GetSegments(textReader.ReadLine());
                        var kerningPair         = KerningPair.ReadText(kerningLineSegments, out var amount);
                        if (bitmapFont.KerningPairs.ContainsKey(kerningPair))
                        {
                            continue;
                        }
                        bitmapFont.KerningPairs[kerningPair] = amount;
                    }

                    break;
                }
                }
            }

            return(bitmapFont);
        }
        public void WriteText(TextWriter textWriter)
        {
            // Info

            if (Info != null)
            {
                textWriter.Write("info");
                Info.WriteText(textWriter);
                textWriter.WriteLine();
            }

            // Common

            if (Common != null)
            {
                textWriter.Write("common");
                Common.WriteText(textWriter, Pages.Count);
                textWriter.WriteLine();
            }

            // Pages

            if (Pages != null)
            {
                foreach (var page in Pages)
                {
                    textWriter.Write("page");
                    TextFormatUtility.WriteInt("id", page.Key, textWriter);
                    TextFormatUtility.WriteString("file", page.Value, textWriter);
                    textWriter.WriteLine();
                }
            }

            // Characters

            if (Characters != null)
            {
                textWriter.Write("chars");
                TextFormatUtility.WriteInt("count", Characters.Count, textWriter);
                textWriter.WriteLine();

                foreach (var keyValuePair in Characters)
                {
                    textWriter.Write("char");
                    keyValuePair.Value.WriteText(textWriter, keyValuePair.Key);
                    textWriter.WriteLine();
                }
            }

            // Kernings

            if (KerningPairs != null && KerningPairs.Count > 0)
            {
                textWriter.Write("kernings");
                TextFormatUtility.WriteInt("count", KerningPairs.Count, textWriter);
                textWriter.WriteLine();

                foreach (var keyValuePair in KerningPairs)
                {
                    textWriter.Write("kerning");
                    keyValuePair.Key.WriteText(textWriter, keyValuePair.Value);
                    textWriter.WriteLine();
                }
            }
        }