You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.1 KiB
C#
72 lines
2.1 KiB
C#
namespace SRDebugger.UI.Other
|
|
{
|
|
using Services;
|
|
using SRF;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ConsoleTabQuickViewControl : SRMonoBehaviourEx
|
|
{
|
|
private const int Max = 1000;
|
|
private static readonly string MaxString = (Max - 1) + "+";
|
|
private int _prevErrorCount = -1;
|
|
private int _prevInfoCount = -1;
|
|
private int _prevWarningCount = -1;
|
|
|
|
[Import] public IConsoleService ConsoleService;
|
|
|
|
[RequiredField] public Text ErrorCountText;
|
|
|
|
[RequiredField] public Text InfoCountText;
|
|
|
|
[RequiredField] public Text WarningCountText;
|
|
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
|
|
ErrorCountText.text = "0";
|
|
WarningCountText.text = "0";
|
|
InfoCountText.text = "0";
|
|
}
|
|
|
|
protected override void Update()
|
|
{
|
|
base.Update();
|
|
|
|
if (ConsoleService == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (HasChanged(ConsoleService.ErrorCount, ref _prevErrorCount, Max))
|
|
{
|
|
ErrorCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.ErrorCount, Max, MaxString);
|
|
}
|
|
|
|
if (HasChanged(ConsoleService.WarningCount, ref _prevWarningCount, Max))
|
|
{
|
|
WarningCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.WarningCount, Max,
|
|
MaxString);
|
|
}
|
|
|
|
if (HasChanged(ConsoleService.InfoCount, ref _prevInfoCount, Max))
|
|
{
|
|
InfoCountText.text = Internal.SRDebuggerUtil.GetNumberString(ConsoleService.InfoCount, Max, MaxString);
|
|
}
|
|
}
|
|
|
|
private static bool HasChanged(int newCount, ref int oldCount, int max)
|
|
{
|
|
var newCountClamped = Mathf.Clamp(newCount, 0, max);
|
|
var oldCountClamped = Mathf.Clamp(oldCount, 0, max);
|
|
|
|
var hasChanged = newCountClamped != oldCountClamped;
|
|
|
|
oldCount = newCount;
|
|
|
|
return hasChanged;
|
|
}
|
|
}
|
|
}
|