# UVoxelWaterPulseLatentActions

`UVoxelWaterPulseLatentActions` belongs to the VoxelWaterPulse runtime module.

Nostrud sint do tempor do nulla sed aliqua commodo in excepteur lorem ullamco eiusmod irure. Adipiscing quis voluptate elit lorem duis amet elit pariatur exercitation ex sit ad sint. Dolor laboris exercitation magna ea commodo quis cillum duis enim lorem laboris. Sit do amet lorem sit aliquip irure sit tempor. Nostrud aute ut occaecat ullamco ullamco enim nostrud eiusmod sit do do exercitation.

## Declaration

```cpp
// Unit test example
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
    FVoxelWaterPulseBasicTest,
    "VoxelWaterPulse.Core.BasicFunctionality",
    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
)

bool FVoxelWaterPulseBasicTest::RunTest(const FString& Parameters)
{
    UVoxelWaterPulseSubsystem* Subsystem = NewObject<UVoxelWaterPulseSubsystem>();
    TestNotNull(TEXT("Subsystem should be created"), Subsystem);

    Subsystem->Initialize();
    TestTrue(TEXT("Subsystem should be initialized"), Subsystem->IsInitialized());

    FMyQueryParams Params;
    Params.Radius = 500.0f;
    TestTrue(TEXT("Query params should be valid"), Params.IsValid());

    return true;
}
```

## Members

| Function | Return Type | Description |
| --- | --- | --- |
| Initialize() | void | Set up the subsystem |
| Query(Params) | bool | Execute a spatial query |
| GetState() | EMyState | Return current state |
| Reset() | void | Reset to default state |
| SetConfig(Config) | void | Apply a configuration |

## Example

```cpp
#include "VoxelWaterPulse.h"
#include "Engine/World.h"

void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    UVoxelWaterPulseSubsystem* Subsystem = GetWorld()->GetSubsystem<UVoxelWaterPulseSubsystem>();
    if (Subsystem)
    {
        Subsystem->Initialize();
        UE_LOG(LogTemp, Log, TEXT("Plugin subsystem initialized successfully"));
    }
}
```