diff options
author | chai <215380520@qq.com> | 2024-06-03 10:15:45 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-06-03 10:15:45 +0800 |
commit | acea7b2e728787a0d83bbf83c8c1f042d2c32e7e (patch) | |
tree | 0bfec05c1ca2d71be2c337bcd110a0421f19318b /Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs | |
parent | 88febcb02bf127d961c6471d9e846c0e1315f5c3 (diff) |
+ plugins project
Diffstat (limited to 'Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs')
-rw-r--r-- | Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs new file mode 100644 index 0000000..343c40c --- /dev/null +++ b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Content.Pipeline/BitmapFonts/BitmapFontWriter.cs @@ -0,0 +1,52 @@ +using Microsoft.Xna.Framework.Content.Pipeline; +using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; + +namespace MonoGame.Extended.Content.Pipeline.BitmapFonts +{ + [ContentTypeWriter] + public class BitmapFontWriter : ContentTypeWriter<BitmapFontProcessorResult> + { + protected override void Write(ContentWriter writer, BitmapFontProcessorResult result) + { + writer.Write(result.TextureAssets.Count); + + foreach (var textureAsset in result.TextureAssets) + writer.Write(textureAsset); + + var fontFile = result.FontFile; + writer.Write(fontFile.Common.LineHeight); + writer.Write(fontFile.Chars.Count); + + foreach (var c in fontFile.Chars) + { + writer.Write(c.Id); + writer.Write(c.Page); + writer.Write(c.X); + writer.Write(c.Y); + writer.Write(c.Width); + writer.Write(c.Height); + writer.Write(c.XOffset); + writer.Write(c.YOffset); + writer.Write(c.XAdvance); + } + + writer.Write(fontFile.Kernings.Count); + foreach(var k in fontFile.Kernings) + { + writer.Write(k.First); + writer.Write(k.Second); + writer.Write(k.Amount); + } + } + + public override string GetRuntimeType(TargetPlatform targetPlatform) + { + return "MonoGame.Extended.BitmapFonts.BitmapFont, MonoGame.Extended"; + } + + public override string GetRuntimeReader(TargetPlatform targetPlatform) + { + return "MonoGame.Extended.BitmapFonts.BitmapFontReader, MonoGame.Extended"; + } + } +}
\ No newline at end of file |