# UCorePhysicsEdgeLocalPlayerSubsystem

`UCorePhysicsEdgeLocalPlayerSubsystem` belongs to the CorePhysicsEdge runtime module.

Commodo nostrud laboris quis pariatur magna do fugiat laboris consectetur sed excepteur irure. Eiusmod exercitation dolore aliquip excepteur aliquip aute in ut irure dolor esse amet exercitation. Voluptate reprehenderit duis lorem esse excepteur ad in veniam enim enim. Et minim pariatur duis veniam nisi ea sed nulla. Aliquip incididunt eiusmod nostrud consequat esse lorem dolore fugiat excepteur.

## Declaration

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

bool FCorePhysicsEdgeBasicTest::RunTest(const FString& Parameters)
{
    UCorePhysicsEdgeSubsystem* Subsystem = NewObject<UCorePhysicsEdgeSubsystem>();
    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

| 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

```
Blueprint Setup:
1. Open your Actor Blueprint
2. Add Component > search "My Plugin Component"
3. In the Details panel, set:
   - Update Interval: 0.1
   - Auto Activate: true
   - Max Instances: 50
4. Connect the OnStateChanged event to your handler
5. Compile and Save the Blueprint
```