Advertisement
devenshona

InventoryComponent.h

Jan 20th, 2024
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | Gaming | 0 0
  1. // Fill out your copyright notice in the Description page of Project Settings.
  2.  
  3. #pragma once
  4.  
  5. #include "CoreMinimal.h"
  6. #include "InventoryComponent.h"
  7. #include "Actors/InventoryItem.h"
  8. #include "Components/ActorComponent.h"
  9. #include "InventoryComponent.generated.h"
  10.  
  11.  
  12. struct FInventoryInfo;
  13. struct FReturnTypes;
  14.  
  15.  
  16. UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
  17. class INVENTORYSYSTEM_API UInventoryComponent : public UActorComponent
  18. {
  19.     GENERATED_BODY()
  20.  
  21. public:
  22.     // Sets default values for this component's properties
  23.     UInventoryComponent();
  24.  
  25. protected:
  26.     // Called when the game starts
  27.     virtual void BeginPlay() override;
  28.  
  29. public:
  30.     // Called every frame
  31.     virtual void TickComponent(float DeltaTime, ELevelTick TickType,
  32.                                FActorComponentTickFunction* ThisTickFunction) override;
  33.  
  34.     //Variables
  35.  
  36.     UPROPERTY(BlueprintReadOnly,EditDefaultsOnly,Category = "Inventory")
  37.     UDataTable* DataTable;
  38.  
  39.     UPROPERTY(BlueprintReadOnly, EditDefaultsOnly, Category = "Inventory")
  40.     TArray<FInventoryInfo> Contents;
  41.  
  42.     //Functions
  43.  
  44.     UPROPERTY(BlueprintCallable)
  45.     FReturnTypes FindItemInInventory(FName Data);
  46.  
  47.     UPROPERTY(BlueprintCallable)
  48.     bool AddItem(FName Data, int Quantity);
  49.  
  50.     UPROPERTY(BlueprintCallable)
  51.     bool DropItem(FName Data);
  52.  
  53.     UPROPERTY(BlueprintCallable)
  54.     bool UseItem(FName Data);
  55. };
  56.  
  57. USTRUCT(BlueprintType)
  58. struct FInventoryInfo
  59. {
  60.     GENERATED_BODY()
  61.  
  62.     UPROPERTY(BlueprintReadOnly,EditDefaultsOnly)
  63.     AInventoryItem* InventoryItem;
  64.  
  65.     UPROPERTY(BlueprintReadOnly,EditDefaultsOnly)
  66.     int Quantity;
  67. };
  68.  
  69. USTRUCT(BlueprintInternalUseOnly)
  70. struct FReturnTypes
  71. {
  72.     GENERATED_BODY()
  73.     UPROPERTY(BlueprintReadOnly)
  74.     bool Success;
  75.     UPROPERTY(BlueprintReadOnly)
  76.     int Index;
  77.     UPROPERTY(BlueprintInternalUseOnly)
  78.     AInventoryItem* InventoryItem;
  79.  
  80.     FReturnTypes() : Success(false),Index(INDEX_NONE),InventoryItem(nullptr){}
  81.    
  82. };
  83.  
  84.  
  85.  
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement