Initial release: HSUI v1.0.0.0 - HUD replacement with configurable hotbars
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
using HSUI.Config;
|
||||
using HSUI.Config.Attributes;
|
||||
using HSUI.Enums;
|
||||
using HSUI.Interface.GeneralElements;
|
||||
using System.Numerics;
|
||||
|
||||
namespace HSUI.Interface.Bars
|
||||
{
|
||||
[Exportable(false)]
|
||||
public class ProgressBarConfig : BarConfig
|
||||
{
|
||||
[NestedConfig("Threshold", 45)]
|
||||
public ThresholdConfig ThresholdConfig = new ThresholdConfig();
|
||||
|
||||
[NestedConfig("Bar Text", 1000)]
|
||||
public NumericLabelConfig Label;
|
||||
|
||||
public ProgressBarConfig(
|
||||
Vector2 position,
|
||||
Vector2 size,
|
||||
PluginConfigColor fillColor,
|
||||
BarDirection fillDirection = BarDirection.Right,
|
||||
PluginConfigColor? threshHoldColor = null,
|
||||
float threshold = 0f) : base(position, size, fillColor, fillDirection)
|
||||
{
|
||||
Label = new NumericLabelConfig(Vector2.Zero, "", DrawAnchor.Center, DrawAnchor.Center);
|
||||
ThresholdConfig.Color = threshHoldColor ?? ThresholdConfig.Color;
|
||||
ThresholdConfig.Value = threshold;
|
||||
}
|
||||
}
|
||||
|
||||
[Exportable(false)]
|
||||
public class ThresholdConfig : PluginConfigObject
|
||||
{
|
||||
[DragFloat("Threshold Value", min = 0f, max = 10000f)]
|
||||
[Order(10)]
|
||||
public float Value = 0f;
|
||||
|
||||
[Checkbox("Change Color")]
|
||||
[Order(15)]
|
||||
public bool ChangeColor = true;
|
||||
|
||||
[Combo("Activate Above/Below Threshold", "Above", "Below")]
|
||||
[Order(20, collapseWith = nameof(ChangeColor))]
|
||||
public ThresholdType ThresholdType = ThresholdType.Below;
|
||||
|
||||
[ColorEdit4("Color")]
|
||||
[Order(25, collapseWith = nameof(ChangeColor))]
|
||||
public PluginConfigColor Color = new PluginConfigColor(new(230f / 255f, 33f / 255f, 33f / 255f, 100f / 100f));
|
||||
|
||||
[Checkbox("Show Threshold Marker")]
|
||||
[Order(30)]
|
||||
public bool ShowMarker = false;
|
||||
|
||||
[DragInt("Threshold Marker Size", min = 0, max = 10000)]
|
||||
[Order(35, collapseWith = nameof(ShowMarker))]
|
||||
public int MarkerSize = 2;
|
||||
|
||||
[ColorEdit4("Threshold Marker Color")]
|
||||
[Order(40, collapseWith = nameof(ShowMarker))]
|
||||
public PluginConfigColor MarkerColor = new PluginConfigColor(new Vector4(0f / 255f, 0f / 255f, 0f / 255f, 100f / 100f));
|
||||
|
||||
public bool IsActive(float current)
|
||||
{
|
||||
return Enabled && (ThresholdType == ThresholdType.Below && current < Value ||
|
||||
ThresholdType == ThresholdType.Above && current > Value);
|
||||
}
|
||||
|
||||
public ThresholdConfig()
|
||||
{
|
||||
Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
public enum ThresholdType
|
||||
{
|
||||
Above,
|
||||
Below
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user