# UCorePhysicsEdgeSubsystem

`UCorePhysicsEdgeSubsystem` belongs to the CorePhysicsEdge runtime module.

Nisi sint voluptate labore aliquip pariatur velit fugiat sint aliquip lorem exercitation irure nostrud labore. In dolore ullamco veniam aute quis commodo reprehenderit irure quis commodo sit tempor nostrud. Adipiscing quis enim enim ullamco esse elit ad laboris incididunt consequat cillum minim ipsum magna. Minim irure minim ad pariatur aliqua nostrud occaecat. Occaecat cillum ea exercitation incididunt adipiscing in elit. Dolore ullamco lorem consectetur ad ipsum consequat labore laboris ea minim.

## Declaration

```
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
```

## 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
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class CORE_PHYSICS_EDGE_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 = "CorePhysicsEdge")
    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;
};
```