r2mods/ilspy_dump/ror2_csproj/RoR2.UI/HUDScaleController.cs

72 lines
1.6 KiB
C#

using System.Collections.Generic;
using RoR2.ConVar;
using UnityEngine;
namespace RoR2.UI;
public class HUDScaleController : MonoBehaviour
{
private class HUDScaleConVar : BaseConVar
{
public static HUDScaleConVar instance = new HUDScaleConVar("hud_scale", ConVarFlags.Archive, "100", "Scales the size of HUD elements in-game. Defaults to 100.");
private int intValue;
private HUDScaleConVar(string name, ConVarFlags flags, string defaultValue, string helpText)
: base(name, flags, defaultValue, helpText)
{
}
public override void SetString(string newValue)
{
if (!TextSerialization.TryParseInvariant(newValue, out int result) || result == 0)
{
return;
}
intValue = result;
foreach (HUDScaleController instances in instancesList)
{
instances.SetScale();
}
}
public override string GetString()
{
return TextSerialization.ToStringInvariant(intValue);
}
}
public RectTransform[] rectTransforms;
private static List<HUDScaleController> instancesList = new List<HUDScaleController>();
public void OnEnable()
{
instancesList.Add(this);
}
public void OnDisable()
{
instancesList.Remove(this);
}
private void Start()
{
SetScale();
}
private void SetScale()
{
BaseConVar baseConVar = Console.instance.FindConVar("hud_scale");
if (baseConVar != null && TextSerialization.TryParseInvariant(baseConVar.GetString(), out float result))
{
Vector3 localScale = new Vector3(result / 100f, result / 100f, result / 100f);
RectTransform[] array = rectTransforms;
for (int i = 0; i < array.Length; i++)
{
array[i].localScale = localScale;
}
}
}
}