Initial release: HSUI v1.0.0.0 - HUD replacement with configurable hotbars

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-01-30 23:52:46 -05:00
commit f37369cdda
202 changed files with 40137 additions and 0 deletions
+80
View File
@@ -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
}
}