Files
MonoGame.Extended/source/MonoGame.Extended.Gui/Serialization/GuiJsonSerializerOptionsProvider.cs
T
Christopher Whitley 66277568c8 Refactor BitmapFont (#887)
* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog
2024-06-11 00:25:10 -04:00

39 lines
1.6 KiB
C#

using System;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.Xna.Framework.Content;
using MonoGame.Extended.BitmapFonts;
using MonoGame.Extended.Serialization;
namespace MonoGame.Extended.Gui.Serialization;
public static class GuiJsonSerializerOptionsProvider
{
public static JsonSerializerOptions GetOptions(ContentManager contentManager, params Type[] customControlTypes)
{
var options = new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
var textureRegionService = new GuiTextureRegionService();
options.Converters.Add(new Vector2JsonConverter());
options.Converters.Add(new SizeJsonConverter());
options.Converters.Add(new Size2JsonConverter());
options.Converters.Add(new ColorJsonConverter());
options.Converters.Add(new ThicknessJsonConverter());
options.Converters.Add(new ContentManagerJsonConverter<BitmapFont>(contentManager, font => font.Face));
options.Converters.Add(new ControlStyleJsonConverter(customControlTypes));
options.Converters.Add(new GuiTextureAtlasJsonConverter(contentManager, textureRegionService));
options.Converters.Add(new GuiNinePatchRegion2DJsonConverter(textureRegionService));
options.Converters.Add(new TextureRegion2DJsonConverter(textureRegionService));
options.Converters.Add(new VerticalAlignmentConverter());
options.Converters.Add(new HorizontalAlignmentConverter());
return options;
}
}