811856b219
Made it so the buy system is universal meaning any devs will not have to keep adding more if statements just to set the items price. It can all be done in editor now and it all handles itself in the code.
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Components/ActorComponent.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(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);
|
|
};
|