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; | ||
|  |     } | ||
|  | 
 | ||
|  | } |