AzureAbyss/Source/the_twilight_abyss/BaseItems/InventoryComponent.h
MH261677 3710f33e74 Updated Inventory System
Done it so the items from the inventory now get removed when used instead of one item never being able to be removed
2023-01-12 13:56:30 +00:00

53 lines
1.5 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "Items/EatableItems.h"
#include "InventoryComponent.generated.h"
//OUR DELEGATE IS CALLED FONINVENTORYUPDATED
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnInventoryUpdated);
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class THE_TWILIGHT_ABYSS_API UInventoryComponent : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UInventoryComponent();
protected:
// Called when the game starts
virtual void BeginPlay() override;
public:
bool AddItem(class UBaseItem* BaseItem); //adds the item to the player
bool Remove(class UBaseItem* BaseItem); //removes the item from the player
UPROPERTY(EditDefaultsOnly, Instanced)
TArray<class UBaseItem*> DefaultItems; //Items you start the game with IF YOU WANT YOU CAN JUST NOT USE THIS
UPROPERTY(EditDefaultsOnly, Category= "Inventory")
int32 MaxItemSlots;
UPROPERTY(EditDefaultsOnly, Category = "Inventory")
int MaxItemStack;
UPROPERTY(BlueprintAssignable, Category= "Inventory")
FOnInventoryUpdated OnInventoryUpdated; //This is our delegate
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category= "Items")
TArray<class UBaseItem*> Items; // The items currently in the inventory
UFUNCTION(BlueprintCallable, Category= "Inventory")
class UBaseItem* GetItem(int Index);
UFUNCTION()
void RemoveItem(UEatableItems* Item);
};