some more progress to inventory system

This commit is contained in:
Ji Yoon Rhee 2023-12-27 20:29:00 +09:00
parent 90d6e5af17
commit b7a583ab27
5 changed files with 38 additions and 0 deletions

View File

@ -19,6 +19,11 @@ void AHYInteractableActor::Interact_Implementation(APlayerController* Controller
{
}
FString AHYInteractableActor::GetInteractText() const
{
return FString();
}
// Called when the game starts or when spawned
void AHYInteractableActor::BeginPlay()
{

View File

@ -20,6 +20,15 @@ public:
void Interact(APlayerController* Controller);
virtual void Interact_Implementation(APlayerController* Controller);
UPROPERTY(EditDefaultsOnly)
FString Name;
UPROPERTY(EditDefaultsOnly)
FString Action;
UFUNCTION(Blueprintcallable, Category = "Pickup")
FString GetInteractText() const;
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;

View File

@ -2,6 +2,8 @@
#include "HYPlayerCharacController.h"
#include "HYGameStateBase.h"
#include "hwanyoung2Character.h"
AHYPlayerCharacController::AHYPlayerCharacController()
{
@ -27,16 +29,33 @@ int32 AHYPlayerCharacController::GetInventoryWeight()
bool AHYPlayerCharacController::AddItemToInventoryByID(FName ID)
{
AHYGameStateBase* gameState = Cast<AHYGameStateBase>(GetWorld()->GetGameState());
UDataTable* itemDB = gameState->GetItemDatabase();
FInventoryItem* itemToAdd = itemDB->FindRow<FInventoryItem>(ID, "");
if (itemToAdd) {
if (Inventory.Num() < InventorySlotLimit &&
GetInventoryWeight() + itemToAdd->ItemWeight <= InventoryWeightLimit) {
Inventory.Add(*itemToAdd);
ReloadInventory();
return true;
}
}
return false;
}
void AHYPlayerCharacController::Interact()
{
if (CurrentInteractable) CurrentInteractable->Interact(this);
}
void AHYPlayerCharacController::SetupInputComponent()
{
Super::SetupInputComponent();
InputComponent->BindAction(
"Interact", IE_Pressed, this,
&AHYPlayerCharacController::Interact);
}
void AHYPlayerCharacController::OnPossess(APawn* InPawn)

View File

@ -19,8 +19,10 @@ class HWANYOUNG2_API AHYPlayerCharacController : public APlayerController
public:
#pragma region inventory
//setting up the controller inventory
AHYPlayerCharacController();
UFUNCTION(BlueprintImplementableEvent)
void ReloadInventory();

View File

@ -5,4 +5,7 @@
FInventoryItem::FInventoryItem()
{
this->ItemName = FText::FromString("No Name");
this->ItemWeight = 1;
this->ItemDescription = FText::FromString("No Description");
}