1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System;
- using System.Runtime.CompilerServices;
- using BepInEx.Configuration;
- using UnityEngine;
- namespace BepInEx.Unity
- {
- /// <summary>
- /// Config types that are unity specific
- /// </summary>
- internal static class UnityTomlTypeConverters
- {
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void AddUnityEngineConverters()
- {
- var colorConverter = new TypeConverter
- {
- ConvertToString = (obj, type) => ColorUtility.ToHtmlStringRGBA((Color)obj),
- ConvertToObject = (str, type) =>
- {
- if (!ColorUtility.TryParseHtmlString("#" + str.Trim('#', ' '), out var c))
- throw new FormatException("Invalid color string, expected hex #RRGGBBAA");
- return c;
- },
- };
- TomlTypeConverter.AddConverter(typeof(Color), colorConverter);
- var jsonConverter = new TypeConverter
- {
- ConvertToString = (obj, type) => JsonUtility.ToJson(obj),
- ConvertToObject = (str, type) => JsonUtility.FromJson(type: type, json: str),
- };
- TomlTypeConverter.AddConverter(typeof(Vector2), jsonConverter);
- TomlTypeConverter.AddConverter(typeof(Vector3), jsonConverter);
- TomlTypeConverter.AddConverter(typeof(Vector4), jsonConverter);
- TomlTypeConverter.AddConverter(typeof(Quaternion), jsonConverter);
- }
- }
- }
|