QuickTween 1.4.1
Loading...
Searching...
No Matches
QuickTweenManager.h
1// Copyright 2025 Juan Pablo Hernandez Mosti. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "Subsystems/WorldSubsystem.h"
6#include "QuickTweenManager.generated.h"
7
16UCLASS()
17class QUICKTWEEN_API UQuickTweenManager final : public UWorldSubsystem, public FTickableGameObject
18{
19 GENERATED_BODY()
20public:
21
28 static UQuickTweenManager* Get(const UObject* worldContextObject);
29
35 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
36
41 virtual void Deinitialize() override;
42
43
49 virtual UWorld* GetTickableGameObjectWorld() const override;
50
56 virtual void Tick(float deltaTime) override;
57
61 virtual TStatId GetStatId() const override;
62
66 virtual ETickableTickType GetTickableTickType() const override { return ETickableTickType::Always; }
67
73 virtual bool IsTickable() const override { return !QuickTweens.IsEmpty(); }
74
80 virtual bool IsTickableInEditor() const override { return false; }
81
87 virtual bool IsTickableWhenPaused() const override { return true; }
88
94 void AddTween(class UQuickTweenable* tween);
95
101 void RemoveTween(class UQuickTweenable* tween);
102
108 UQuickTweenable* FindTweenByPredicate(TFunctionRef<bool(UQuickTweenable*)> predicate) const;
109
115 UQuickTweenable* FindLastTweenByPredicate(TFunctionRef<bool(UQuickTweenable*)> predicate) const;
116
122 TArray<UQuickTweenable*> FindAllTweensByPredicate(TFunctionRef<bool(UQuickTweenable*)> predicate) const;
123
129 void ExecutePredicateByCondition(TFunctionRef<void(UQuickTweenable*)> action, TFunctionRef<bool(const UQuickTweenable*)> predicate) const;
130private:
131
133 UPROPERTY(Transient)
134 TArray<UQuickTweenable*> QuickTweens = {};
135
137 bool bIsInitialized = false;
138};
Definition QuickTweenManager.h:18
virtual TStatId GetStatId() const override
Definition QuickTweenManager.cpp:84
virtual UWorld * GetTickableGameObjectWorld() const override
Definition QuickTweenManager.cpp:25
virtual void Tick(float deltaTime) override
Definition QuickTweenManager.cpp:48
virtual ETickableTickType GetTickableTickType() const override
Definition QuickTweenManager.h:66
virtual bool IsTickableInEditor() const override
Definition QuickTweenManager.h:80
virtual bool IsTickableWhenPaused() const override
Definition QuickTweenManager.h:87
virtual void Initialize(FSubsystemCollectionBase &Collection) override
Definition QuickTweenManager.cpp:30
virtual void Deinitialize() override
Definition QuickTweenManager.cpp:39
virtual bool IsTickable() const override
Definition QuickTweenManager.h:73
static UQuickTweenManager * Get(const UObject *worldContextObject)
Definition QuickTweenManager.cpp:12
Definition QuickTweenable.h:24