Persist active fire spread state
This commit is contained in:
@@ -231,6 +231,7 @@ void AAgrarianCampfire::CapturePersistentState_Implementation(UAgrarianPersisten
|
||||
PersistentComponent->NumberState.Add(TEXT("forest_fire_intensity"), ForestFireIntensity);
|
||||
PersistentComponent->NumberState.Add(TEXT("structure_fire_intensity"), StructureFireIntensity);
|
||||
PersistentComponent->NumberState.Add(TEXT("active_fire_spread_radius"), ActiveFireSpreadRadius);
|
||||
PersistentComponent->NumberState.Add(TEXT("fire_suppression_pressure"), FireSuppressionPressure);
|
||||
}
|
||||
|
||||
void AAgrarianCampfire::ApplyPersistentState_Implementation(UAgrarianPersistentActorComponent* PersistentComponent)
|
||||
@@ -260,6 +261,7 @@ void AAgrarianCampfire::ApplyPersistentState_Implementation(UAgrarianPersistentA
|
||||
const float* SavedForestFireIntensity = PersistentComponent->NumberState.Find(TEXT("forest_fire_intensity"));
|
||||
const float* SavedStructureFireIntensity = PersistentComponent->NumberState.Find(TEXT("structure_fire_intensity"));
|
||||
const float* SavedActiveFireSpreadRadius = PersistentComponent->NumberState.Find(TEXT("active_fire_spread_radius"));
|
||||
const float* SavedFireSuppressionPressure = PersistentComponent->NumberState.Find(TEXT("fire_suppression_pressure"));
|
||||
|
||||
if (SavedFuelSeconds)
|
||||
{
|
||||
@@ -356,6 +358,11 @@ void AAgrarianCampfire::ApplyPersistentState_Implementation(UAgrarianPersistentA
|
||||
ActiveFireSpreadRadius = FMath::Clamp(*SavedActiveFireSpreadRadius, 0.0f, MaxFireSpreadRadius);
|
||||
}
|
||||
|
||||
if (SavedFireSuppressionPressure)
|
||||
{
|
||||
FireSuppressionPressure = FMath::Clamp(*SavedFireSuppressionPressure, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
SetLit(SavedLit && *SavedLit > 0.5f && FuelSeconds > 0.0f);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user