Swap ListView over to ScrollBox
This commit is contained in:
parent
e7a10aa267
commit
8fba6df0db
BIN
Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset
(Stored with Git LFS)
BIN
Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset
(Stored with Git LFS)
BIN
Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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<AWeapon> Weapon : StarterWeapons)
|
||||
{
|
||||
UStarterWeaponButtonDataObject* Temp = NewObject<UStarterWeaponButtonDataObject>(this);
|
||||
Temp->SetData(Weapon, this);
|
||||
UpgradesListView->AddItem(Temp);
|
||||
if (UStarterWeaponButtonWidget* Widget = CreateWidget<UStarterWeaponButtonWidget>(
|
||||
GetWorld(), StarterWeaponButtonWidgetTemplate))
|
||||
{
|
||||
UStarterWeaponButtonDataObject* Temp = NewObject<UStarterWeaponButtonDataObject>(this);
|
||||
Temp->SetData(Weapon, this);
|
||||
Widget->SetData(Temp);
|
||||
StarterWeaponsScrollBox->AddChild(Widget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void USelectWeaponWidget::BackButtonClicked()
|
||||
{
|
||||
PlayClickedSound();
|
||||
if (PreviousWidget)
|
||||
{
|
||||
RemoveFromParent();
|
||||
|
||||
UUserWidget* SelectWeaponWidget = CreateWidget<UUserWidget, APlayerController*>(
|
||||
UUserWidget* MainMenuWidget = CreateWidget<UUserWidget, APlayerController*>(
|
||||
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);
|
||||
}
|
||||
|
@ -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<UButton> BackButton;
|
||||
TObjectPtr<UCustomButton> BackButton;
|
||||
|
||||
UPROPERTY(meta=(BindWidget))
|
||||
TObjectPtr<UTextBlock> BackTextBlock;
|
||||
TObjectPtr<UScrollBox> StarterWeaponsScrollBox;
|
||||
|
||||
UPROPERTY(meta=(BindWidget))
|
||||
TObjectPtr<UListView> UpgradesListView;
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
TSubclassOf<UStarterWeaponButtonWidget> StarterWeaponButtonWidgetTemplate;
|
||||
|
||||
protected:
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TArray<TSubclassOf<AWeapon>> StarterWeapons;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
TSubclassOf<class UUserWidget> PreviousWidget;
|
||||
|
||||
FTimerHandle TimerHandle;
|
||||
|
||||
virtual void NativeConstruct() override;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
UFUNCTION()
|
||||
void BackButtonClicked();
|
||||
|
||||
UFUNCTION()
|
||||
void BackButtonOnHovered();
|
||||
|
||||
UFUNCTION()
|
||||
void BackButtonOnUnhovered();
|
||||
};
|
||||
|
@ -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<UStarterWeaponButtonDataObject>(ListItemObject))
|
||||
{
|
||||
TextBlock->SetText(Item->WeaponName);
|
||||
ButtonText = Item->WeaponName;
|
||||
DescriptionTextBlock->SetText(Item->WeaponDescription);
|
||||
WeaponIcon->SetBrushFromTexture(Item->WeaponIcon);
|
||||
Parent = Item->Parent;
|
||||
|
@ -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<UUserWidget> Parent;
|
||||
|
||||
virtual void NativeOnListItemObjectSet(UObject* ListItemObject) override;
|
||||
public:
|
||||
void SetData(UStarterWeaponButtonDataObject* ListItemObject);
|
||||
|
||||
private:
|
||||
virtual void OnButtonClicked() override;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user