I have an interface I’m trying to implement in my current project, and I’ve run into a problem. On trying to compile, I get this list of errors:
Here is the interface .h:
#pragma once
#include "Object.h"
#include "Inventory.h"
#include "BasePickup.h"
#include "InventoryI.generated.h"
UINTERFACE(MinimalAPI)
class UInventoryI : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class IInventoryI
{
GENERATED_IINTERFACE_BODY()
public:
virtual void StartSelection() = 0;
virtual void EndSelection() = 0;
virtual void OnTaken(UInventory* Inventory) = 0;
virtual void OnItemSelected(ABasePickup* Item) = 0;
virtual void DropItem(ABasePickup* Item, uint32 Amount = 0) = 0;
};
Here is the interface .cpp:
#include "OccultaMundi.h"
#include "InventoryI.h"
UInventoryI::UInventoryI(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
}
And here is the .h for the class where I’m implementing the interface:
#include "Components/ActorComponent.h"
#include "BasePickup.h"
#include "Inventory.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class OCCULTAMUNDI_API UInventory : public UActorComponent, public IInventoryI
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UInventory();
// Called when the game starts
virtual void BeginPlay() override;
// Called every frame
virtual void TickComponent( float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction ) override;
// Add to the inventory
void AddToInventory(FInventoryItem* Item);
// Remove from the inventory
void RemoveFromInventory(FInventoryItem* Item);
virtual void StartSelection() override;
virtual void EndSelection() override;
virtual void OnTaken(UInventory* Inventory) override;
virtual void OnItemSelected(ABasePickup* Item) override;
virtual void DropItem(ABasePickup* Item, uint32 Amount = 0) override;
private:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Inventory, meta = (AllowPrivateAccess = "true"))
TArray<FInventoryItem> InventoryItems;
};
I’ve tried everything I can think of to fix this, and I can’t find an existing question here that addresses this. Any ideas?