voxelwaterpulse.Debug

v2.0
View as Markdown

voxelwaterpulse.Debug belongs to the VoxelWaterPulse runtime module.

Veniam voluptate nulla eiusmod voluptate incididunt consectetur ut aliqua esse eiusmod labore lorem consectetur incididunt. Nisi esse occaecat amet nostrud aliqua reprehenderit duis consectetur aute commodo fugiat. Consectetur ullamco veniam nisi nulla irure sit sit voluptate elit dolor.

Declaration

 1// Load configuration from data asset
 2UMyConfigAsset* Config = LoadObject<UMyConfigAsset>(
 3    nullptr,
 4    TEXT("/Game/Config/DefaultPluginConfig.DefaultPluginConfig")
 5);
 6
 7if (Config)
 8{
 9    Settings.MaxPoolSize = Config->MaxPoolSize;
10    Settings.TickRate = Config->TickRate;
11    Settings.bEnableDebugDraw = Config->bEnableDebugDraw;
12    Settings.LogVerbosity = Config->LogVerbosity;
13
14    UE_LOG(LogVoxelWaterPulse, Log, TEXT("Configuration loaded: PoolSize=%d, TickRate=%.2f"),
15        Settings.MaxPoolSize, Settings.TickRate);
16}

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

 1// Unit test example
 2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
 3    FVoxelWaterPulseBasicTest,
 4    "VoxelWaterPulse.Core.BasicFunctionality",
 5    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
 6)
 7
 8bool FVoxelWaterPulseBasicTest::RunTest(const FString& Parameters)
 9{
10    UVoxelWaterPulseSubsystem* Subsystem = NewObject<UVoxelWaterPulseSubsystem>();
11    TestNotNull(TEXT("Subsystem should be created"), Subsystem);
12
13    Subsystem->Initialize();
14    TestTrue(TEXT("Subsystem should be initialized"), Subsystem->IsInitialized());
15
16    FMyQueryParams Params;
17    Params.Radius = 500.0f;
18    TestTrue(TEXT("Query params should be valid"), Params.IsValid());
19
20    return true;
21}