// 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 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 Items; // The items currently in the inventory UFUNCTION(BlueprintCallable, Category= "Inventory") class UBaseItem* GetItem(int Index); };