71 lines
2.0 KiB
C#
71 lines
2.0 KiB
C#
using UnrealSharp.Attributes;
|
|
using UnrealSharp.BusyRabbit;
|
|
using UnrealSharp.UMG;
|
|
namespace UI.Level.StateBar;
|
|
|
|
|
|
[UClass]
|
|
public class UBusyWidgetHealthBar : UPW_MinimalWidget
|
|
{
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float Percent { get; set; }
|
|
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float Test { get; set; }
|
|
|
|
|
|
protected UProgressBar? HpBarHurt { get { return GetWidget("HpBarHurt") as UProgressBar; } }
|
|
protected UProgressBar? HpBarHealth { get { return GetWidget("HpBarHealth") as UProgressBar; } }
|
|
protected UProgressBar? HpBarNormal { get { return GetWidget("HpBarNormal") as UProgressBar; } }
|
|
protected USizeBox ? SizeboxMain { get { return GetWidget("SizeboxMain") as USizeBox; } }
|
|
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float MaxHp { get; set; }
|
|
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float CurHp { get; set; }
|
|
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float Width { get; set; }
|
|
|
|
[UProperty(PropertyFlags.EditAnywhere)]
|
|
public float Height { get; set; }
|
|
|
|
protected float LastHp = 200;
|
|
|
|
|
|
public override void PreConstruct(bool isDesignTime)
|
|
{
|
|
SetHpConfig(CurHp, MaxHp);
|
|
RefreshHealthBarDisplay();
|
|
}
|
|
|
|
public override void Construct()
|
|
{
|
|
base.Construct();
|
|
SetHpConfig(180, 200);
|
|
}
|
|
|
|
public void SetHpConfig(float CurHp, float MaxHp)
|
|
{
|
|
LastHp = CurHp;
|
|
this.CurHp = CurHp;
|
|
this.MaxHp = MaxHp;
|
|
RefreshHealthBarDisplay();
|
|
}
|
|
|
|
|
|
protected void RefreshHealthBarDisplay()
|
|
{
|
|
if (HpBarHealth == null || HpBarHurt == null || HpBarNormal == null || SizeboxMain == null)
|
|
{
|
|
return;
|
|
}
|
|
HpBarHurt.Visibility = ESlateVisibility.Collapsed;
|
|
HpBarHealth.Visibility = ESlateVisibility.Collapsed;
|
|
HpBarNormal.Percent = MaxHp != 0 ? (CurHp / MaxHp) : 0;
|
|
SizeboxMain.WidthOverride = Width;
|
|
SizeboxMain.HeightOverride = Height;
|
|
}
|
|
|
|
} |