# EVoxelWaterPulseQuality

`EVoxelWaterPulseQuality` belongs to the VoxelWaterPulse runtime module.

Amet in ea fugiat veniam consectetur amet sit veniam. Consectetur aliquip tempor commodo aliqua consectetur aute ad aliquip aliqua enim. Ea labore elit commodo exercitation lorem amet occaecat sit dolore incididunt. Lorem eiusmod sit sit adipiscing pariatur sit veniam labore.

## Declaration

```cpp
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class VOXEL_WATER_PULSE_API UMyComponent : public UActorComponent
{
    GENERATED_BODY()

public:
    UMyComponent();

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    float UpdateInterval = 0.1f;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    bool bAutoActivate = true;

    UFUNCTION(BlueprintCallable, Category = "VoxelWaterPulse")
    void SetConfiguration(const FMyConfig& Config);

protected:
    virtual void BeginPlay() override;
    virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;

private:
    FMyConfig CurrentConfig;
    float TimeSinceLastUpdate = 0.0f;
};
```

## Members

| Event | Parameters | Description |
| --- | --- | --- |
| OnStateChanged | EMyState NewState | Fired when state transitions |
| OnProgressUpdated | float Progress, FString Message | Fired on progress change |
| OnError | FString ErrorMessage, int32 Code | Fired on error |
| OnInitialized | bool bSuccess | Fired after initialization |

## Example

```cpp
UINTERFACE(MinimalAPI, Blueprintable)
class UVoxelWaterPulseInterface : public UInterface
{
    GENERATED_BODY()
};

class IVoxelWaterPulseInterface
{
    GENERATED_BODY()

public:
    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelWaterPulse")
    void OnPluginActivated(bool bSuccess);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelWaterPulse")
    FMyResult ProcessData(const FMyInput& Input);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VoxelWaterPulse")
    bool CanExecute() const;
};
```