diff --git a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.cpp b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.cpp index ffa855c9..b3a804b7 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.cpp @@ -3,6 +3,8 @@ #include "BaseWorldItem.h" +#include "InventoryComponent.h" + // Sets default values ABaseWorldItem::ABaseWorldItem() @@ -11,16 +13,12 @@ ABaseWorldItem::ABaseWorldItem() PrimaryActorTick.bCanEverTick = true; } -// Called when the game starts or when spawned -void ABaseWorldItem::BeginPlay() +void ABaseWorldItem::Interact() { - Super::BeginPlay(); - + APawn* PlayerPawn = GetWorld()->GetFirstPlayerController()->GetPawn(); + UInventoryComponent* PlayersInventory = Cast(PlayerPawn->GetComponentByClass(UInventoryComponent::StaticClass())); + PlayersInventory->AddItem(NewObject(GetWorld(), ItemClass)); + Destroy(); } -// Called every frame -void ABaseWorldItem::Tick(float DeltaTime) -{ - Super::Tick(DeltaTime); -} diff --git a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.h b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.h index c83609d9..068278fa 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.h +++ b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseWorldItem.h @@ -3,23 +3,28 @@ #pragma once #include "CoreMinimal.h" +#include "BaseItem.h" +#include "EndlessVendetta/InteractionInterface.h" #include "GameFramework/Actor.h" #include "BaseWorldItem.generated.h" UCLASS() -class ENDLESSVENDETTA_API ABaseWorldItem : public AActor +class ENDLESSVENDETTA_API ABaseWorldItem : public AActor, public IInteractionInterface { GENERATED_BODY() +// ---------------------- Attributes -------------------------- + UPROPERTY(EditDefaultsOnly, Category = "Item") + TSubclassOf ItemClass; + +// ---------------------- Methods ----------------------------- +protected: + void Interact() override; + public: // Sets default values for this actor's properties ABaseWorldItem(); + -protected: - // Called when the game starts or when spawned - virtual void BeginPlay() override; - -public: - // Called every frame - virtual void Tick(float DeltaTime) override; + };