Initial Agrarian Unreal project

This commit is contained in:
2026-05-11 00:26:02 -07:00
commit 15f5cfc0f8
863 changed files with 12516 additions and 0 deletions
@@ -0,0 +1,78 @@
// Copyright Pacificao. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "AgrarianTypes.h"
#include "AgrarianSurvivalComponent.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAgrarianSurvivalChangedSignature, const FAgrarianSurvivalSnapshot&, Snapshot);
UCLASS(ClassGroup = (Agrarian), BlueprintType, Blueprintable, meta = (BlueprintSpawnableComponent))
class UAgrarianSurvivalComponent : public UActorComponent
{
GENERATED_BODY()
public:
UAgrarianSurvivalComponent();
virtual void BeginPlay() override;
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UPROPERTY(BlueprintAssignable, Category = "Agrarian|Survival")
FAgrarianSurvivalChangedSignature OnSurvivalChanged;
UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Survival, Category = "Agrarian|Survival")
FAgrarianSurvivalSnapshot Survival;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float HungerDecayPerMinute = 0.55f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float ThirstDecayPerMinute = 0.85f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float StaminaRecoveryPerSecond = 14.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float StarvationDamagePerMinute = 3.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float DehydrationDamagePerMinute = 5.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float ColdDamagePerMinute = 4.0f;
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
bool IsAlive() const;
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void ApplyDamage(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void RestoreHealth(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddFood(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddWater(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddWarmth(float DegreesCelsius);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddInjury(float Severity);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void SpendStamina(float Amount);
protected:
UFUNCTION()
void OnRep_Survival();
void ClampSurvival();
void BroadcastSurvivalChanged();
};