using System;
using System.Numerics;

namespace LightlessSync.LightlessConfiguration.Configurations;

[Serializable]
public class UiStyleOverride
{
    public uint? Color { get; set; }
    public float? Float { get; set; }
    public Vector2Config? Vector2 { get; set; }

    public bool IsEmpty => Color is null && Float is null && Vector2 is null;
}

[Serializable]
public record struct Vector2Config(float X, float Y)
{
    public static implicit operator Vector2(Vector2Config value) => new(value.X, value.Y);
    public static implicit operator Vector2Config(Vector2 value) => new(value.X, value.Y);
}
