Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "CoreMinimal.h"
- #include "UObject/NoExportTypes.h"
- #include "ReactiveEvent.generated.h"
- DECLARE_DYNAMIC_DELEGATE(FReactiveEventDelegate);
- DECLARE_DYNAMIC_MULTICAST_DELEGATE(FReactiveEventDelegateMulti);
- UCLASS(Blueprintable, BlueprintType)
- class PROJECTNAME_API UReactiveEvent : public UObject
- {
- GENERATED_BODY()
- public:
- FReactiveEventDelegateMulti OnEventInvoked;
- bool bWasCalled;
- UFUNCTION(BlueprintCallable)
- void Subscribe(const FReactiveEventDelegate& callback)
- {
- OnEventInvoked.Add(callback);
- if(bWasCalled)
- {
- callback.Execute();
- }
- }
- UFUNCTION(BlueprintCallable)
- void OnNext()
- {
- bWasCalled = true;
- OnEventInvoked.Broadcast();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement