Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Fill out your copyright notice in the Description page of Project Settings.
- #pragma once
- #include "CoreMinimal.h"
- #include "InventoryComponent.h"
- #include "Actors/InventoryItem.h"
- #include "Components/ActorComponent.h"
- #include "InventoryComponent.generated.h"
- struct FInventoryInfo;
- struct FReturnTypes;
- UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
- class INVENTORYSYSTEM_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:
- // Called every frame
- virtual void TickComponent(float DeltaTime, ELevelTick TickType,
- FActorComponentTickFunction* ThisTickFunction) override;
- //Variables
- UPROPERTY(BlueprintReadOnly,EditDefaultsOnly,Category = "Inventory")
- UDataTable* DataTable;
- UPROPERTY(BlueprintReadOnly, EditDefaultsOnly, Category = "Inventory")
- TArray<FInventoryInfo> Contents;
- //Functions
- UPROPERTY(BlueprintCallable)
- FReturnTypes FindItemInInventory(FName Data);
- UPROPERTY(BlueprintCallable)
- bool AddItem(FName Data, int Quantity);
- UPROPERTY(BlueprintCallable)
- bool DropItem(FName Data);
- UPROPERTY(BlueprintCallable)
- bool UseItem(FName Data);
- };
- USTRUCT(BlueprintType)
- struct FInventoryInfo
- {
- GENERATED_BODY()
- UPROPERTY(BlueprintReadOnly,EditDefaultsOnly)
- AInventoryItem* InventoryItem;
- UPROPERTY(BlueprintReadOnly,EditDefaultsOnly)
- int Quantity;
- };
- USTRUCT(BlueprintInternalUseOnly)
- struct FReturnTypes
- {
- GENERATED_BODY()
- UPROPERTY(BlueprintReadOnly)
- bool Success;
- UPROPERTY(BlueprintReadOnly)
- int Index;
- UPROPERTY(BlueprintInternalUseOnly)
- AInventoryItem* InventoryItem;
- FReturnTypes() : Success(false),Index(INDEX_NONE),InventoryItem(nullptr){}
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement