56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using UnrealSharp.Engine;
 | |
| using UI.Level.Controllers;
 | |
| using UnrealSharp.Attributes;
 | |
| using UnrealSharp.BusyRabbit;
 | |
| using UnrealSharp;
 | |
| 
 | |
| namespace UI.Level.StateBar;
 | |
| 
 | |
| [UClass]
 | |
| public class UBusyWidgetStateBar : UPW_MinimalWidget
 | |
| {
 | |
|     protected UBusyWidgetHealthBar? WBP_HealthBar { get { return GetWidget("WBP_HealthBar") as UBusyWidgetHealthBar; } }
 | |
|     protected UBusyWidgetSatietyBar? WBP_SatietyBar { get { return GetWidget("WBP_SatietyBar") as UBusyWidgetSatietyBar; } }
 | |
| 
 | |
|     protected UBusyRoleStateController? UIController;
 | |
| 
 | |
| 
 | |
|     public override void Construct()
 | |
|     {
 | |
|         base.Construct();
 | |
|         WBP_SatietyBar.SetSatietyConfig(100, 200);
 | |
| 
 | |
|         UIController = UUIFunctionLibrary.GetUIController(this, "RoleState") as UBusyRoleStateController;
 | |
| 
 | |
|         InitRoleAttribute();
 | |
|         UIController.OnAttributeChangeDelegate += OnAttributeChanged;
 | |
| 
 | |
|     }
 | |
| 
 | |
|     public void InitRoleAttribute()
 | |
|     {
 | |
|         float CurHealth = UIController.GetControlledAttribute("Health");
 | |
|         float MaxHealth = UIController.GetControlledAttribute("MaxHealth");
 | |
|         float CurSatiety = UIController.GetControlledAttribute("Hunger");
 | |
|         float MaxSatiety = UIController.GetControlledAttribute("MaxHunger");
 | |
|         WBP_HealthBar.SetHpConfig(CurHealth, MaxHealth);
 | |
|         WBP_SatietyBar.SetSatietyConfig(CurSatiety, MaxSatiety);
 | |
|     }
 | |
| 
 | |
|     public override void Destruct()
 | |
|     {
 | |
|         base.Destruct();
 | |
|         UIController.OnAttributeChangeDelegate -= OnAttributeChanged;
 | |
|     }
 | |
| 
 | |
| 
 | |
|     [UFunction()]
 | |
|     protected void OnAttributeChanged(FName AttributeName, float NewValue, float OldValue)
 | |
|     {
 | |
|         if (AttributeName == "Hunger")
 | |
|         {
 | |
|             WBP_SatietyBar.OnSatietyChanged(NewValue);
 | |
|         }
 | |
|     }
 | |
| }
 |