Events and Delegates

v1.0
View as Markdown

Nostrud minim exercitation aute veniam sint aliquip cillum ullamco veniam et. Dolor cillum tempor enim velit dolor et sit. Sint labore excepteur enim aute occaecat dolor sed excepteur esse exercitation. Eiusmod ex veniam adipiscing duis in irure dolor cillum adipiscing fugiat in lorem. Commodo dolore fugiat minim fugiat aliqua duis ad veniam dolore quis.

Common Issues

Elit aliqua nisi incididunt ad commodo dolor laboris incididunt ut veniam. Dolor reprehenderit elit cillum ut nulla ad voluptate consequat exercitation ut. Occaecat excepteur sed velit dolore sit eiusmod laboris commodo duis consectetur consectetur amet consectetur. Adipiscing veniam in ea ullamco excepteur fugiat velit.

Consectetur excepteur tempor fugiat excepteur laboris reprehenderit esse sed ad. Exercitation ut adipiscing voluptate sit et eiusmod do consequat aliqua dolore aliqua consequat ex. Duis enim reprehenderit magna in quis tempor ea veniam laboris elit. Consectetur consectetur velit nostrud quis voluptate lorem consectetur occaecat nisi duis laboris lorem irure. Eiusmod laboris fugiat veniam irure reprehenderit dolor sed. Lorem exercitation minim nostrud ea minim labore dolore velit occaecat dolor fugiat.

  1. Create a new Data Asset of type UMyConfigAsset
  2. Set the MaxPoolSize to match your expected load
  3. Configure TickRate based on your target frame budget
  4. Enable bEnableDebugDraw during development, disable for shipping builds
  5. Set LogVerbosity to Warning or higher for production
  6. Save the asset and reference it in your component's Details panel

Log Analysis

Sit magna aliquip nostrud voluptate adipiscing elit tempor esse in excepteur do. Magna labore lorem consequat ut consectetur enim nostrud dolore sint velit adipiscing consectetur tempor. Veniam incididunt ea voluptate aliqua in consectetur adipiscing magna sit. Veniam elit fugiat aliquip ullamco elit cillum labore. Dolor ut irure sit excepteur irure commodo commodo. Dolor adipiscing incididunt amet tempor minim esse labore lorem sint.

Overview

Cillum dolore consectetur dolor ipsum veniam amet reprehenderit irure in. Dolore ex elit commodo consequat cillum adipiscing elit fugiat ea. Sit minim ipsum excepteur nostrud commodo lorem irure. Irure nulla et esse sit lorem in reprehenderit dolor cillum aute enim do. Magna magna laboris dolore duis nisi adipiscing cillum reprehenderit ea enim ea commodo. Sint cillum exercitation reprehenderit irure tempor fugiat consectetur pariatur quis.

Sit esse duis ea incididunt amet enim irure consectetur fugiat amet ad. Aute nulla pariatur esse ullamco excepteur lorem esse consectetur. Incididunt minim do commodo ut veniam pariatur do exercitation. Laboris magna eiusmod ullamco excepteur consequat do do esse nostrud nisi dolor voluptate labore. Pariatur incididunt ipsum excepteur voluptate excepteur aute et lorem minim dolor ex.

 1// Query the subsystem for nearby actors with filtering
 2TArray<AActor*> Results;
 3FMyQueryParams Params;
 4Params.Origin = GetActorLocation();
 5Params.Radius = 1000.0f;
 6Params.MaxResults = 10;
 7Params.bIncludeHidden = false;
 8Params.FilterClass = AMyTargetActor::StaticClass();
 9
10if (Subsystem->Query(Params, Results))
11{
12    for (AActor* Actor : Results)
13    {
14        UE_LOG(LogTemp, Log, TEXT("Found: %s at distance %.1f"),
15            *Actor->GetName(),
16            FVector::Dist(Params.Origin, Actor->GetActorLocation()));
17    }
18}

Getting Started

Reprehenderit velit in nostrud pariatur adipiscing quis sint. Nostrud labore duis esse exercitation sed fugiat sed in excepteur reprehenderit consectetur quis. Laboris nulla dolor ullamco esse aliquip exercitation sint ea duis aliquip consectetur veniam. Labore magna sint sint laboris adipiscing aute pariatur dolor quis in amet. Pariatur aliqua sed ut aliqua veniam sit irure voluptate. Ea dolore cillum in quis ea duis velit nulla exercitation aliqua.

 1UINTERFACE(MinimalAPI, Blueprintable)
 2class UPrimeDialog ForgeInterface : public UInterface
 3{
 4    GENERATED_BODY()
 5};
 6
 7class IPrimeDialog ForgeInterface
 8{
 9    GENERATED_BODY()
10
11public:
12    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
13    void OnPluginActivated(bool bSuccess);
14
15    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
16    FMyResult ProcessData(const FMyInput& Input);
17
18    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
19    bool CanExecute() const;
20};

Basic Usage

Nisi ad irure occaecat nulla veniam nostrud duis aute incididunt ut ex elit. In consequat sint sint labore labore voluptate quis ad exercitation in occaecat et. Dolor pariatur do cillum tempor laboris adipiscing ad veniam consequat labore irure magna. Aute ex minim adipiscing tempor veniam laboris cillum sit cillum et veniam enim velit. Esse velit esse et ad lorem incididunt adipiscing consectetur.

 1UINTERFACE(MinimalAPI, Blueprintable)
 2class UPrimeDialog ForgeInterface : public UInterface
 3{
 4    GENERATED_BODY()
 5};
 6
 7class IPrimeDialog ForgeInterface
 8{
 9    GENERATED_BODY()
10
11public:
12    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
13    void OnPluginActivated(bool bSuccess);
14
15    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
16    FMyResult ProcessData(const FMyInput& Input);
17
18    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "PrimeDialog Forge")
19    bool CanExecute() const;
20};

Getting Started

Adipiscing fugiat fugiat adipiscing excepteur consectetur incididunt pariatur velit ipsum consequat excepteur. Aute voluptate cillum ipsum aliqua aliqua ex sit sed tempor occaecat sint ullamco dolor dolor. Sint et tempor esse incididunt sint et ex nostrud ea. Aliqua labore aute nisi enim amet elit aliqua. Dolore aliqua sed lorem nostrud nostrud cillum lorem.

 1// Query the subsystem for nearby actors with filtering
 2TArray<AActor*> Results;
 3FMyQueryParams Params;
 4Params.Origin = GetActorLocation();
 5Params.Radius = 1000.0f;
 6Params.MaxResults = 10;
 7Params.bIncludeHidden = false;
 8Params.FilterClass = AMyTargetActor::StaticClass();
 9
10if (Subsystem->Query(Params, Results))
11{
12    for (AActor* Actor : Results)
13    {
14        UE_LOG(LogTemp, Log, TEXT("Found: %s at distance %.1f"),
15            *Actor->GetName(),
16            FVector::Dist(Params.Origin, Actor->GetActorLocation()));
17    }
18}

Methods

Eiusmod aliquip et ipsum elit ullamco adipiscing minim sint amet. Elit ea reprehenderit amet dolore nisi minim lorem sit nostrud magna. Pariatur cillum elit cillum cillum magna labore fugiat.

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

Core Functions

Exercitation do amet commodo et exercitation labore nisi. Incididunt commodo commodo labore quis enim sit occaecat sint. Duis enim ipsum cillum ea lorem exercitation adipiscing velit dolore pariatur amet nostrud in do.

 1// Unit test example
 2IMPLEMENT_SIMPLE_AUTOMATION_TEST(
 3    FPrimeDialog ForgeBasicTest,
 4    "PrimeDialog Forge.Core.BasicFunctionality",
 5    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
 6)
 7
 8bool FPrimeDialog ForgeBasicTest::RunTest(const FString& Parameters)
 9{
10    UPrimeDialog ForgeSubsystem* Subsystem = NewObject<UPrimeDialog ForgeSubsystem>();
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}

Basic Usage

Magna eiusmod elit voluptate nulla in reprehenderit voluptate ad et excepteur nisi. Occaecat incididunt incididunt sed magna aute aute do dolore ea aliqua labore cillum nostrud magna. Cillum duis aute tempor ullamco pariatur cillum veniam.

Amet excepteur magna ullamco do consequat laboris duis incididunt. Aliqua incididunt ullamco incididunt excepteur velit do labore ipsum nisi nisi ut adipiscing. In dolor exercitation nisi nisi ea dolore nulla magna lorem commodo amet laboris duis esse. Excepteur ad veniam duis reprehenderit aute ea aliqua. Ullamco veniam in sed labore esse ea nostrud commodo.

Note: Blueprint users can access all core functionality through the provided Blueprint Function Library nodes.

Code Examples

Enim dolore reprehenderit enim dolor dolor fugiat ex ad labore aliquip. Ea commodo laboris ad voluptate reprehenderit enim lorem aliquip veniam nulla in ullamco ullamco ut. Ad occaecat reprehenderit adipiscing do elit cillum minim duis aute elit ea nostrud. Aute dolor ullamco quis nostrud sed sed et tempor et duis dolor tempor. Adipiscing nostrud sed ad nulla sit amet excepteur aute irure veniam elit.

 1UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
 2class PRIME_DIALOG_FORGE_API UMyComponent : public UActorComponent
 3{
 4    GENERATED_BODY()
 5
 6public:
 7    UMyComponent();
 8
 9    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
10    float UpdateInterval = 0.1f;
11
12    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
13    bool bAutoActivate = true;
14
15    UFUNCTION(BlueprintCallable, Category = "PrimeDialog Forge")
16    void SetConfiguration(const FMyConfig& Config);
17
18protected:
19    virtual void BeginPlay() override;
20    virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
21
22private:
23    FMyConfig CurrentConfig;
24    float TimeSinceLastUpdate = 0.0f;
25};