diff --git a/Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset b/Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset index 3a23009..b75d62a 100644 --- a/Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset +++ b/Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f843ffe6516efb169974074fb18c4370390878199c103cd00153c2c575f0a5ba -size 38252 +oid sha256:8e8c5cbff759c8154be9c72f0702d6968e63b953c77d56b73333f4f47627a3c4 +size 36728 diff --git a/Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset b/Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset index 18cd075..fd36891 100644 --- a/Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset +++ b/Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3f1d3ff4bf3421f66bbcec6f33876ff5a98dc86b854f0c42fa440d99c50d5e7 -size 35930 +oid sha256:b9bf39c6e79e9c5dda5738aabdb12a8c0f210be3082ba619c04ee28b6da19cde +size 36219 diff --git a/Source/vampires/Widgets/SelectWeaponWidget.cpp b/Source/vampires/Widgets/SelectWeaponWidget.cpp index 0b7aeb2..68e44fa 100644 --- a/Source/vampires/Widgets/SelectWeaponWidget.cpp +++ b/Source/vampires/Widgets/SelectWeaponWidget.cpp @@ -3,11 +3,10 @@ #include "SelectWeaponWidget.h" -#include "MainMenuWidget.h" +#include "CustomButton.h" #include "StarterWeaponButtonDataObject.h" -#include "UpgradeButtonDataObject.h" -#include "Components/Button.h" -#include "Components/ListView.h" +#include "StarterWeaponButtonWidget.h" +#include "Components/ScrollBox.h" #include "Kismet/GameplayStatics.h" void USelectWeaponWidget::NativeConstruct() @@ -17,47 +16,36 @@ void USelectWeaponWidget::NativeConstruct() if (BackButton) { BackButton->OnClicked.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonClicked); - BackButton->OnHovered.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonOnHovered); - BackButton->OnUnhovered.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonOnUnhovered); } - if (UpgradesListView) + if (StarterWeaponsScrollBox && StarterWeaponButtonWidgetTemplate) { - // Get a list of weapons that the player owns that can be upgraded for (TSubclassOf Weapon : StarterWeapons) { - UStarterWeaponButtonDataObject* Temp = NewObject(this); - Temp->SetData(Weapon, this); - UpgradesListView->AddItem(Temp); + if (UStarterWeaponButtonWidget* Widget = CreateWidget( + GetWorld(), StarterWeaponButtonWidgetTemplate)) + { + UStarterWeaponButtonDataObject* Temp = NewObject(this); + Temp->SetData(Weapon, this); + Widget->SetData(Temp); + StarterWeaponsScrollBox->AddChild(Widget); + } } } } void USelectWeaponWidget::BackButtonClicked() { - PlayClickedSound(); if (PreviousWidget) { RemoveFromParent(); - UUserWidget* SelectWeaponWidget = CreateWidget( + UUserWidget* MainMenuWidget = CreateWidget( UGameplayStatics::GetPlayerController(GetWorld(), 0), PreviousWidget); - if (SelectWeaponWidget) + if (MainMenuWidget) { - SelectWeaponWidget->AddToViewport(); + MainMenuWidget->AddToViewport(); } } } - -void USelectWeaponWidget::BackButtonOnHovered() -{ - PlayHoveredSound(); - SetTextBlockHovered(BackTextBlock); -} - -void USelectWeaponWidget::BackButtonOnUnhovered() -{ - PlayUnhoveredSound(); - SetTextBlockUnhovered(BackTextBlock); -} diff --git a/Source/vampires/Widgets/SelectWeaponWidget.h b/Source/vampires/Widgets/SelectWeaponWidget.h index 7d5434e..a632e84 100644 --- a/Source/vampires/Widgets/SelectWeaponWidget.h +++ b/Source/vampires/Widgets/SelectWeaponWidget.h @@ -7,9 +7,12 @@ #include "SelectWeaponWidget.generated.h" +class UStarterWeaponButtonWidget; +class UScrollBox; +class UCustomListView; class AWeapon; class UListView; -class UButton; +class UCustomButton; /** * */ @@ -18,33 +21,28 @@ class VAMPIRES_API USelectWeaponWidget : public UVampireInteractiveWidget { GENERATED_BODY() +public: UPROPERTY(meta=(BindWidget)) - TObjectPtr BackButton; + TObjectPtr BackButton; UPROPERTY(meta=(BindWidget)) - TObjectPtr BackTextBlock; + TObjectPtr StarterWeaponsScrollBox; - UPROPERTY(meta=(BindWidget)) - TObjectPtr UpgradesListView; + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + TSubclassOf StarterWeaponButtonWidgetTemplate; protected: - UPROPERTY(EditDefaultsOnly) TArray> StarterWeapons; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) TSubclassOf PreviousWidget; + FTimerHandle TimerHandle; + virtual void NativeConstruct() override; - + private: - UFUNCTION() void BackButtonClicked(); - - UFUNCTION() - void BackButtonOnHovered(); - - UFUNCTION() - void BackButtonOnUnhovered(); }; diff --git a/Source/vampires/Widgets/StarterWeaponButtonWidget.cpp b/Source/vampires/Widgets/StarterWeaponButtonWidget.cpp index 2621e23..64c89ce 100644 --- a/Source/vampires/Widgets/StarterWeaponButtonWidget.cpp +++ b/Source/vampires/Widgets/StarterWeaponButtonWidget.cpp @@ -10,11 +10,12 @@ #include "Kismet/GameplayStatics.h" #include "vampires/VampireGameInstance.h" -void UStarterWeaponButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject) +void UStarterWeaponButtonWidget::SetData(UStarterWeaponButtonDataObject* ListItemObject) { if (UStarterWeaponButtonDataObject* Item = Cast(ListItemObject)) { TextBlock->SetText(Item->WeaponName); + ButtonText = Item->WeaponName; DescriptionTextBlock->SetText(Item->WeaponDescription); WeaponIcon->SetBrushFromTexture(Item->WeaponIcon); Parent = Item->Parent; diff --git a/Source/vampires/Widgets/StarterWeaponButtonWidget.h b/Source/vampires/Widgets/StarterWeaponButtonWidget.h index 111f195..a9abeba 100644 --- a/Source/vampires/Widgets/StarterWeaponButtonWidget.h +++ b/Source/vampires/Widgets/StarterWeaponButtonWidget.h @@ -8,6 +8,7 @@ #include "Blueprint/UserWidget.h" #include "StarterWeaponButtonWidget.generated.h" +class UStarterWeaponButtonDataObject; class AWeapon; class UTextBlock; class UImage; @@ -32,7 +33,9 @@ class VAMPIRES_API UStarterWeaponButtonWidget : public UCustomButton, public IUs UPROPERTY() TObjectPtr Parent; - virtual void NativeOnListItemObjectSet(UObject* ListItemObject) override; +public: + void SetData(UStarterWeaponButtonDataObject* ListItemObject); +private: virtual void OnButtonClicked() override; };