blob: 5ebc880fcca647aa4166a8c67f520b9cd49d58de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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.Name));
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;
}
}
|