internal static Skin FromJsonSkin(IGameContext ctx, JsonSkinData data, string root = null) { GameUtils.Log($"About to load skin: {data.Metadata.Name} by {data.Metadata.Author}"); var skin = new Skin(); skin.Metadata = SkinMetadata.FromJson(data.Metadata); if (data.ColorSchemes == null) { data.ColorSchemes = new Dictionary <string, JsonColorScheme>(); } if (!data.ColorSchemes.ContainsKey("light")) { data.ColorSchemes.Add("light", JsonColorScheme.DefaultLight); } if (!data.ColorSchemes.ContainsKey("dark")) { data.ColorSchemes.Add("dark", JsonColorScheme.DefaultDark); } skin.LightColorScheme = ColorScheme.FromJsonColors(data.ColorSchemes["light"], JsonColorScheme.DefaultLight); skin.DarkColorScheme = ColorScheme.FromJsonColors(data.ColorSchemes["dark"], JsonColorScheme.DefaultDark); skin.LoadFontsFromJson(ctx, data.Fonts ?? new JsonFontList(), root); skin.Textures = SkinTextureList.FromJsonTextures(ctx, data.Textures, root); skin.LayoutInfo = SkinLayoutInfo.FromJsonData(data.LayoutInfo); GameUtils.Log("Skin loaded."); return(skin); }
internal static SkinTextureList FromJsonTextures(IGameContext ctx, JsonSkinTextures textures, string root = null) { GameUtils.Log("Loading skin textures..."); var textureList = new SkinTextureList(); textureList.CheckBoxUnchecked = LoadTexture(ctx, textures.CheckBoxUnchecked, root); textureList.CheckBoxChecked = LoadTexture(ctx, textures.CheckBoxChecked, root); textureList.CheckBoxUnknown = LoadTexture(ctx, textures.CheckBoxUnknown, root); textureList.Wallpaper = LoadTexture(ctx, textures.Wallpaper, root); textureList.SystemBar = LoadTexture(ctx, textures.SystemBar, root); return(textureList); }