IVSmoke 1.0
Loading...
Searching...
No Matches
IVSmokeSmokePreset.h
1// Copyright (c) 2026, Team SDB. All rights reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/DataAsset.h"
7#include "IVSmokeSmokePreset.generated.h"
8
9/**
10 * Per-volume smoke appearance preset.
11 * Controls visual properties that can vary between individual smoke volumes.
12 *
13 * For global rendering settings (noise, ray marching, scattering, etc.),
14 * see UIVSmokeSettings in Project Settings > Plugins > IVSmoke.
15 */
16UCLASS(BlueprintType)
17class IVSMOKE_API UIVSmokeSmokePreset : public UPrimaryDataAsset
18{
19 GENERATED_BODY()
20
21public:
22 // ============================================================================
23 // Appearance (Per-Volume)
24 // ============================================================================
25
26 /** Base color of the smoke. */
27 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "IVSmoke|Appearance")
28 FLinearColor SmokeColor = FLinearColor(0.8f, 0.8f, 0.8f, 1.0f);
29
30 /** Light absorption coefficient. Higher = denser, more opaque smoke. */
31 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "IVSmoke|Appearance", meta = (ClampMin = "0.0", ClampMax = "1.0"))
32 float SmokeAbsorption = 0.1f;
33
34 /** Base density multiplier for this volume. */
35 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "IVSmoke|Appearance", meta = (ClampMin = "0.0", ClampMax = "10.0"))
36 float VolumeDensity = 1.0f;
37
38 // ============================================================================
39 // UPrimaryDataAsset Interface
40 // ============================================================================
41
42 virtual FPrimaryAssetId GetPrimaryAssetId() const override
43 {
44 return FPrimaryAssetId(TEXT("IVSmokeSmokePreset"), GetFName());
45 }
46};