Add Ground Zero water source
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
// Copyright Pacificao. All Rights Reserved.
|
||||
|
||||
#include "AgrarianWaterSource.h"
|
||||
|
||||
#include "AgrarianGameCharacter.h"
|
||||
#include "AgrarianSurvivalComponent.h"
|
||||
#include "Components/StaticMeshComponent.h"
|
||||
|
||||
AAgrarianWaterSource::AAgrarianWaterSource()
|
||||
{
|
||||
bReplicates = true;
|
||||
|
||||
Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
|
||||
RootComponent = Mesh;
|
||||
Mesh->SetCollisionProfileName(TEXT("BlockAll"));
|
||||
|
||||
DisplayName = FText::FromString(TEXT("Fresh Water"));
|
||||
}
|
||||
|
||||
FText AAgrarianWaterSource::GetInteractionText_Implementation(const AAgrarianGameCharacter* Interactor) const
|
||||
{
|
||||
return FText::Format(NSLOCTEXT("AgrarianWaterSource", "DrinkFromWaterSource", "Drink from {0}"), DisplayName);
|
||||
}
|
||||
|
||||
bool AAgrarianWaterSource::CanInteract_Implementation(const AAgrarianGameCharacter* Interactor) const
|
||||
{
|
||||
return Interactor != nullptr && Interactor->GetSurvivalComponent() != nullptr;
|
||||
}
|
||||
|
||||
void AAgrarianWaterSource::Interact_Implementation(AAgrarianGameCharacter* Interactor)
|
||||
{
|
||||
if (!HasAuthority() || !Interactor)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (UAgrarianSurvivalComponent* SurvivalComponent = Interactor->GetSurvivalComponent())
|
||||
{
|
||||
SurvivalComponent->AddWater(WaterRestoreAmount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Copyright Pacificao. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Actor.h"
|
||||
#include "AgrarianInteractable.h"
|
||||
#include "AgrarianWaterSource.generated.h"
|
||||
|
||||
class UStaticMeshComponent;
|
||||
|
||||
UCLASS(Blueprintable)
|
||||
class AGRARIANGAME_API AAgrarianWaterSource : public AActor, public IAgrarianInteractable
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
AAgrarianWaterSource();
|
||||
|
||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Agrarian|Water")
|
||||
TObjectPtr<UStaticMeshComponent> Mesh;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Water", meta = (ClampMin = "0"))
|
||||
float WaterRestoreAmount = 45.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Water")
|
||||
FText DisplayName;
|
||||
|
||||
virtual FText GetInteractionText_Implementation(const AAgrarianGameCharacter* Interactor) const override;
|
||||
virtual bool CanInteract_Implementation(const AAgrarianGameCharacter* Interactor) const override;
|
||||
virtual void Interact_Implementation(AAgrarianGameCharacter* Interactor) override;
|
||||
};
|
||||
Reference in New Issue
Block a user