Added Inventory Notification Functionality
This commit is contained in:
parent
7a04920197
commit
1254abfd0e
BIN
Content/Blueprints/Status_UI/InventoryNotification.uasset
(Stored with Git LFS)
BIN
Content/Blueprints/Status_UI/InventoryNotification.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Blueprints/Status_UI/ItemTextNotification.uasset
(Stored with Git LFS)
BIN
Content/Blueprints/Status_UI/ItemTextNotification.uasset
(Stored with Git LFS)
Binary file not shown.
@ -11,6 +11,9 @@ UInventoryComponent::UInventoryComponent()
|
|||||||
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
|
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
|
||||||
// off to improve performance if you don't need them.
|
// off to improve performance if you don't need them.
|
||||||
PrimaryComponentTick.bCanEverTick = true;
|
PrimaryComponentTick.bCanEverTick = true;
|
||||||
|
|
||||||
|
static ConstructorHelpers::FClassFinder<UUserWidget> InventoryNotificationWidgetClassFinder(TEXT("/Game/Blueprints/Status_UI/InventoryNotification"));
|
||||||
|
InventoryNotificationWidgetClass = InventoryNotificationWidgetClassFinder.Class;
|
||||||
|
|
||||||
MaxItemSlots = 10;
|
MaxItemSlots = 10;
|
||||||
}
|
}
|
||||||
@ -21,6 +24,9 @@ void UInventoryComponent::BeginPlay()
|
|||||||
{
|
{
|
||||||
Super::BeginPlay();
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
InventoryNotificationWidgetInstance = CreateWidget<UUserWidget>(GetWorld(), InventoryNotificationWidgetClass);
|
||||||
|
InventoryNotificationWidgetInstance->AddToViewport();
|
||||||
|
|
||||||
//activates the AddItem function for every DefaultItem that inherits BaseItem
|
//activates the AddItem function for every DefaultItem that inherits BaseItem
|
||||||
for (auto& BaseItem : DefaultItems)
|
for (auto& BaseItem : DefaultItems)
|
||||||
{
|
{
|
||||||
@ -44,7 +50,8 @@ bool UInventoryComponent::AddItem(class UBaseItem* BaseItem)
|
|||||||
//if the item is the same as the item that is being added
|
//if the item is the same as the item that is being added
|
||||||
if (Item->ItemDisplayName.ToString() == BaseItem->ItemDisplayName.ToString())
|
if (Item->ItemDisplayName.ToString() == BaseItem->ItemDisplayName.ToString())
|
||||||
{
|
{
|
||||||
Item->StackCount++;
|
Item->StackCount += BaseItem->StackCount;
|
||||||
|
OnItemAdd.Broadcast(BaseItem->ItemDisplayName.ToString(), BaseItem->StackCount);
|
||||||
UE_LOG(LogTemp, Display, TEXT("ITEM STACKCOUNT: %d"), Item->StackCount);
|
UE_LOG(LogTemp, Display, TEXT("ITEM STACKCOUNT: %d"), Item->StackCount);
|
||||||
isNewItem = false;
|
isNewItem = false;
|
||||||
break;
|
break;
|
||||||
@ -53,6 +60,7 @@ bool UInventoryComponent::AddItem(class UBaseItem* BaseItem)
|
|||||||
if (isNewItem == true)
|
if (isNewItem == true)
|
||||||
{
|
{
|
||||||
Items.Add(BaseItem);
|
Items.Add(BaseItem);
|
||||||
|
OnItemAdd.Broadcast(BaseItem->ItemDisplayName.ToString(), BaseItem->StackCount);
|
||||||
UE_LOG(LogTemp, Display, TEXT("ITEM HAS BEEN ADDED TO INVENTORY"));
|
UE_LOG(LogTemp, Display, TEXT("ITEM HAS BEEN ADDED TO INVENTORY"));
|
||||||
}
|
}
|
||||||
//Refreshes the inventory
|
//Refreshes the inventory
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
//OUR DELEGATE IS CALLED FONINVENTORYUPDATED
|
//OUR DELEGATE IS CALLED FONINVENTORYUPDATED
|
||||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnInventoryUpdated);
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnInventoryUpdated);
|
||||||
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnItemAdd, const FString&, ItemDisplayName, const int&, StackAmount);
|
||||||
|
|
||||||
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
|
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
|
||||||
class THE_TWILIGHT_ABYSS_API UInventoryComponent : public UActorComponent
|
class THE_TWILIGHT_ABYSS_API UInventoryComponent : public UActorComponent
|
||||||
@ -24,22 +25,29 @@ protected:
|
|||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool AddItem(class UBaseItem* BaseItem); //adds the item to the player
|
UPROPERTY()
|
||||||
|
TSubclassOf<UUserWidget> InventoryNotificationWidgetClass;
|
||||||
|
UPROPERTY()
|
||||||
|
UUserWidget* InventoryNotificationWidgetInstance;
|
||||||
|
|
||||||
|
bool AddItem(class UBaseItem* BaseItem); //adds the item to the player
|
||||||
|
|
||||||
bool Remove(class UBaseItem* BaseItem); //removes the item from the player
|
bool Remove(class UBaseItem* BaseItem); //removes the item from the player
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Instanced)
|
UPROPERTY(EditDefaultsOnly, Instanced)
|
||||||
TArray<class UBaseItem*> DefaultItems; //Items you start the game with IF YOU WANT YOU CAN JUST NOT USE THIS
|
TArray<class UBaseItem*> DefaultItems; //Items you start the game with IF YOU WANT YOU CAN JUST NOT USE THIS
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Category= "Inventory")
|
UPROPERTY(EditDefaultsOnly, Category= "Inventory")
|
||||||
int32 MaxItemSlots;
|
int32 MaxItemSlots;
|
||||||
|
|
||||||
UPROPERTY(BlueprintAssignable, Category= "Inventory")
|
UPROPERTY(BlueprintAssignable, Category= "Inventory")
|
||||||
FOnInventoryUpdated OnInventoryUpdated; //This is our delegate
|
FOnInventoryUpdated OnInventoryUpdated; //This is our delegate
|
||||||
|
UPROPERTY(BlueprintAssignable, Category= "Inventory")
|
||||||
|
FOnItemAdd OnItemAdd;
|
||||||
|
|
||||||
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category= "Items")
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category= "Items")
|
||||||
TArray<class UBaseItem*> Items; // The items currently in the inventory
|
TArray<class UBaseItem*> Items; // The items currently in the inventory
|
||||||
|
|
||||||
UFUNCTION(BlueprintCallable, Category= "Inventory")
|
UFUNCTION(BlueprintCallable, Category= "Inventory")
|
||||||
class UBaseItem* GetItem(int Index);
|
class UBaseItem* GetItem(int Index);
|
||||||
|
|
||||||
@ -51,7 +59,7 @@ public:
|
|||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void RemoveItemID(const int& ItemID);
|
void RemoveItemID(const int& ItemID);
|
||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
UBaseItem* GetItemByID(const int& ItemID);
|
UBaseItem* GetItemByID(const int& ItemID);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user