Add campfire smoke placeholder

This commit is contained in:
2026-05-17 19:00:42 -07:00
parent 0ac4bec3cf
commit c60b975294
5 changed files with 76 additions and 1 deletions
+20
View File
@@ -4,6 +4,7 @@
#include "AgrarianGameCharacter.h"
#include "AgrarianInventoryComponent.h"
#include "AgrarianSurvivalComponent.h"
#include "Particles/ParticleSystemComponent.h"
#include "Components/PointLightComponent.h"
#include "Components/StaticMeshComponent.h"
#include "Kismet/GameplayStatics.h"
@@ -22,6 +23,12 @@ AAgrarianCampfire::AAgrarianCampfire()
FireLight->SetIntensity(0.0f);
FireLight->SetAttenuationRadius(WarmthRadius);
FireLight->SetLightColor(FLinearColor(1.0f, 0.45f, 0.18f));
SmokeEffect = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("SmokeEffect"));
SmokeEffect->SetupAttachment(RootComponent);
SmokeEffect->bAutoActivate = false;
SmokeEffect->SetRelativeLocation(FVector(0.0f, 0.0f, 80.0f));
SmokeEffect->SetVisibility(false);
}
void AAgrarianCampfire::Tick(float DeltaSeconds)
@@ -140,6 +147,19 @@ void AAgrarianCampfire::UpdateVisualState()
{
FireLight->SetIntensity(bLit ? 4200.0f : 0.0f);
}
if (SmokeEffect)
{
SmokeEffect->SetVisibility(bLit);
if (bLit)
{
SmokeEffect->ActivateSystem();
}
else
{
SmokeEffect->DeactivateSystem();
}
}
}
void AAgrarianCampfire::WarmNearbyCharacters(float DeltaSeconds)