Simplify class

This commit is contained in:
baz 2025-08-15 22:36:07 +01:00
parent 2768e84d66
commit af60880d17
2 changed files with 38 additions and 22 deletions

View File

@ -51,12 +51,8 @@ void UUpgradeButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject)
if (Body) if (Body)
{ {
Body->OnClicked.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnClicked); Body->OnClicked.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnClicked);
Body->OnHovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::PlayHoveredSound);
Body->OnHovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnHoveredDelegate); Body->OnHovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnHoveredDelegate);
Body->OnUnhovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnUnhoveredDelegate); Body->OnUnhovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::OnUnhoveredDelegate);
Body->OnUnhovered.AddUniqueDynamic(this, &UUpgradeButtonWidget::PlayUnhoveredSound);
} }
} }
@ -81,6 +77,8 @@ void UUpgradeButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject)
void UUpgradeButtonWidget::OnClicked() void UUpgradeButtonWidget::OnClicked()
{ {
PlayClickedSound();
APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0); APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0);
switch (UpgradeType) switch (UpgradeType)
@ -90,7 +88,8 @@ void UUpgradeButtonWidget::OnClicked()
break; break;
case NewWeapon: case NewWeapon:
if (UWeaponInventoryComponent* Inventory = PlayerController->GetPawn()->GetComponentByClass<UWeaponInventoryComponent>()) if (UWeaponInventoryComponent* Inventory = PlayerController->GetPawn()->GetComponentByClass<
UWeaponInventoryComponent>())
{ {
Inventory->AddWeaponToInventory(WeaponTemplate); Inventory->AddWeaponToInventory(WeaponTemplate);
Inventory->ObtainableWeapons.Remove(WeaponTemplate); Inventory->ObtainableWeapons.Remove(WeaponTemplate);
@ -100,7 +99,8 @@ void UUpgradeButtonWidget::OnClicked()
case Health: case Health:
if (PlayerController) if (PlayerController)
{ {
if (UHealthComponent* HealthComponent = PlayerController->GetPawn()->GetComponentByClass<UHealthComponent>()) if (UHealthComponent* HealthComponent = PlayerController->GetPawn()->GetComponentByClass<
UHealthComponent>())
{ {
HealthComponent->RecoverHealth(HealthComponent->GetMaxHealth() / 10.0f); HealthComponent->RecoverHealth(HealthComponent->GetMaxHealth() / 10.0f);
} }
@ -135,3 +135,17 @@ void UUpgradeButtonWidget::OnClicked()
Parent->SetIsFocusable(false); Parent->SetIsFocusable(false);
} }
} }
void UUpgradeButtonWidget::OnHoveredDelegate()
{
PlayHoveredSound();
SetTextBlockHovered(WeaponNameTextBlock);
SetTextBlockHovered(DescriptionTextBlock);
}
void UUpgradeButtonWidget::OnUnhoveredDelegate()
{
PlayUnhoveredSound();
SetTextBlockUnhovered(WeaponNameTextBlock);
SetTextBlockUnhovered(DescriptionTextBlock);
}

View File

@ -32,6 +32,20 @@ class VAMPIRES_API UUpgradeButtonWidget : public UVampireInteractiveWidget, publ
GENERATED_BODY() GENERATED_BODY()
protected: protected:
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> UpgradeIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> NewWeaponIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> HealthIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> GoldIcon;
private:
UPROPERTY(EditDefaultsOnly, meta=(BindWidget)) UPROPERTY(EditDefaultsOnly, meta=(BindWidget))
TObjectPtr<UButton> Body; TObjectPtr<UButton> Body;
@ -44,25 +58,13 @@ protected:
UPROPERTY(EditDefaultsOnly, meta=(BindWidget)) UPROPERTY(EditDefaultsOnly, meta=(BindWidget))
TObjectPtr<UTextBlock> DescriptionTextBlock; TObjectPtr<UTextBlock> DescriptionTextBlock;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> UpgradeIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> NewWeaponIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> HealthIcon;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<UTexture2D> GoldIcon;
UPROPERTY(EditDefaultsOnly) UPROPERTY(EditDefaultsOnly)
TEnumAsByte<EUpgradeType> UpgradeType; TEnumAsByte<EUpgradeType> UpgradeType;
UPROPERTY(EditAnywhere, BlueprintReadWrite) UPROPERTY()
TSubclassOf<AWeapon> WeaponTemplate; TSubclassOf<AWeapon> WeaponTemplate;
UPROPERTY(EditAnywhere, BlueprintReadWrite) UPROPERTY()
TObjectPtr<AWeapon> WeaponInstance; TObjectPtr<AWeapon> WeaponInstance;
UPROPERTY() UPROPERTY()
@ -82,8 +84,8 @@ private:
virtual void OnClicked(); virtual void OnClicked();
UFUNCTION() UFUNCTION()
void OnHoveredDelegate() { SetTextBlockHovered(WeaponNameTextBlock); SetTextBlockHovered(DescriptionTextBlock); } void OnHoveredDelegate();
UFUNCTION() UFUNCTION()
void OnUnhoveredDelegate() { SetTextBlockUnhovered(WeaponNameTextBlock); SetTextBlockUnhovered(DescriptionTextBlock); } void OnUnhoveredDelegate();
}; };