47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class uServerStatus : MonoBehaviour
|
|
{
|
|
[Header("UI References")]
|
|
public Image statusIcon;
|
|
public Text statusText;
|
|
|
|
[Header("Status Configurations")]
|
|
public StatusConfig[] statusConfigs;
|
|
|
|
[Serializable]
|
|
public class StatusConfig
|
|
{
|
|
public ServerStatus status;
|
|
public Sprite icon;
|
|
public string displayText;
|
|
}
|
|
|
|
public enum ServerStatus
|
|
{
|
|
Good,
|
|
Fair,
|
|
Maintenance,
|
|
Unreachable,
|
|
Unknown,
|
|
Offline,
|
|
Test
|
|
}
|
|
|
|
public void SetStatus(ServerStatus newStatus)
|
|
{
|
|
foreach (var config in statusConfigs)
|
|
{
|
|
if (config.status == newStatus)
|
|
{
|
|
if (statusIcon != null) statusIcon.sprite = config.icon;
|
|
if (statusText != null) statusText.text = string.IsNullOrEmpty(config.displayText) ? newStatus.ToString() : config.displayText;
|
|
return;
|
|
}
|
|
}
|
|
Debug.LogWarning($"No configuration found for status {newStatus}");
|
|
}
|
|
}
|