Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/BarOptionsGUI.cs
2026-02-21 16:45:37 +08:00

115 lines
4.4 KiB
C#

using EnergyBarToolkit;
using UnityEngine;
[ExecuteInEditMode]
public class BarOptionsGUI : MonoBehaviour
{
public const string FormatHelp = "Format Help:\r\n \r\n{cur} - current int value\r\n{min} - minimal value\r\n{max} - maximum value\r\n{cur%} - current % value (0 - 100)\r\n{cur2%} - current % value with precision of tens (0.0 - 100.0)\r\n\r\nExamples:\r\n{cur}/{max} - 27/100\r\n{cur%} % - 27 %";
public GameObject bar;
public Rect position = new Rect(10f, 100f, 200f, 100f);
public GUISkin skin;
public bool allowBurn = true;
public bool allowChangeBarColor;
public bool changeBurnCollorAuto = true;
public bool allowChangeDirection;
private EnergyBar energyBar;
private EnergyBarRenderer energyBarRenderer;
private void Start()
{
}
private void OnGUI()
{
GUI.skin = skin;
energyBar = bar.GetComponent<EnergyBar>();
energyBarRenderer = bar.GetComponent<EnergyBarRenderer>();
GUILayout.BeginArea(position);
GUILayout.Label("Change Value:");
energyBar.valueCurrent = (int)GUILayout.HorizontalSlider(energyBar.valueCurrent, energyBar.valueMin, energyBar.valueMax);
if (energyBarRenderer != null)
{
if (allowBurn)
{
energyBarRenderer.effectBurn = GUILayout.Toggle(energyBarRenderer.effectBurn, "Burn Effect (on subtraction)", skin.toggle);
}
energyBarRenderer.effectSmoothChange = GUILayout.Toggle(energyBarRenderer.effectSmoothChange, "Smooth Change", skin.toggle);
energyBarRenderer.effectBlink = GUILayout.Toggle(energyBarRenderer.effectBlink, "Blink when energy is low (NEW!)", skin.toggle);
if (allowChangeBarColor)
{
GUILayout.Space(10f);
GUILayout.BeginHorizontal();
if (GUILayout.Toggle(energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Solid, "Solid Color"))
{
energyBarRenderer.textureBarColorType = EnergyBarBase.ColorType.Solid;
}
if (GUILayout.Toggle(energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Gradient, "Gradient (NEW!)"))
{
energyBarRenderer.textureBarColorType = EnergyBarBase.ColorType.Gradient;
}
GUILayout.EndHorizontal();
GUI.enabled = energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Solid;
GUILayout.BeginHorizontal();
GUILayout.Label("R:");
energyBarRenderer.textureBarColor.r = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.r, 0f, 1f);
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("G:");
energyBarRenderer.textureBarColor.g = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.g, 0f, 1f);
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("B:");
energyBarRenderer.textureBarColor.b = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.b, 0f, 1f);
GUILayout.EndHorizontal();
GUI.enabled = false;
if (changeBurnCollorAuto)
{
energyBarRenderer.effectBurnTextureBarColor = energyBarRenderer.textureBarColor;
energyBarRenderer.effectBurnTextureBarColor.a = 0.5f;
}
}
if (allowChangeDirection)
{
GUILayout.Space(10f);
GUILayout.Label("Direction: ");
GUILayout.BeginHorizontal();
if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.LeftToRight, "L -> R"))
{
energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.LeftToRight;
}
if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.TopToBottom, "T -> B"))
{
energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.TopToBottom;
}
if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.RightToLeft, "R -> L"))
{
energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.RightToLeft;
}
if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.BottomToTop, "B -> T"))
{
energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.BottomToTop;
}
GUILayout.EndHorizontal();
}
if (energyBarRenderer.labelEnabled)
{
GUILayout.Space(20f);
GUILayout.Label("Label Format:");
energyBarRenderer.labelFormat = GUILayout.TextField(energyBarRenderer.labelFormat);
GUILayout.Label("Format Help:\r\n \r\n{cur} - current int value\r\n{min} - minimal value\r\n{max} - maximum value\r\n{cur%} - current % value (0 - 100)\r\n{cur2%} - current % value with precision of tens (0.0 - 100.0)\r\n\r\nExamples:\r\n{cur}/{max} - 27/100\r\n{cur%} % - 27 %");
}
}
GUILayout.EndArea();
GUI.skin = null;
}
}