-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathChangelog.txt
More file actions
256 lines (201 loc) · 11 KB
/
Copy pathChangelog.txt
File metadata and controls
256 lines (201 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
###### 3.9.1
* Fixed the engine version checks.
###### 3.9.0
* LoopAndWait coroutine added, which works like WhileTrueExecute but in a form of a coroutine.
* WaitLoadObjects variant for loading assets using FPrimaryAssetId list added.
Only coroutine, because AssetManager has the lambda callback already.
* WaitForFlag coroutine added (works similar to WaitUntil, but accepts only one bool flag to check for completion)
* Action Settings can now be constructed using the method chaining, like: FECFActionSettings().WithIgnorePause().WithLabel(TEXT("MyAction"));
* GetActionLabelFromHandle function added
* Fixed crash that could occur when running multiple co_awaits in one coroutine function.
* Fixed dandling coroutine handles that could be created if the coroutine action setup failed.
###### 3.8.0
* GetActionTime and SetActionTime functions added, which allows to obtain and set the current time of the Action.
It works for all time dependent actions (Delay, Timeline, etc.) and can be used to alter the flow of the Action in runtime.
For example, you can set the Action time to 0 to restart it, or set it to the end to finish it immediately.
* Changed the condition of when ECFTimeline action is finished. Now it uses the time value instead of the timeline value.
###### 3.7.0
* LoadObjectsAsync action added, which allows to load objects asynchronously and wait for their loading to be completed.
* WaitLoadObjects coroutine added, which is a coroutine version of LoadObjectsAsync.
* Fixed the compilation for UE4.27
###### 3.6.2
* Coroutines now returns the information if the resumed coroutine Action has been stopped or timed out.
* Added WaitUntil coroutine variant with a predicate WITHOUT the DeltaTime.
###### 3.6.1
* ResetAction function now returns true if the Action has actually resetted or false if it didn't.
###### 3.6.0
* Added Labels. You can add a Label to every Action which helps with debugging (Labels are displayed in logs) and you
can search for running action's handles by these Labels.
* GetActionsHandlesByClass and GetActionsHandlesByLabel functions added which returns an array of handles of valid Actions.
* RemoveAll[FunctionName] is now DEPRECATED! Use StopAllActionsOfClass or StopAllActionsWithLabel functions.
* GetAllActions, GetActionsCount, GetActionFromHandle, and GetActionFromInstancedId functions has been added for C++, which
returns pointers to actual Actions objects. Use them for DEBUGGING purposes only!
* MarkAsFinished function is now protected
###### 3.5.4
* Better detection of if the compiler supports coroutines or not.
* ECF_WITH_COROUTINES macro added for excluding coroutine code for compilers that do not support them.
###### 3.5.3
* Using static delegates in timeline interp functions instead of dynamic ones
###### 3.5.2
* The FAB link was correct in the end...
###### 3.5.1
* Added more tracers for Unreal Insight
* Fixed compilation for compilers not supporting coroutines
* Changed order of the Copmlete and MarkAsFinished order. Now MarkAsFinished is called first, then Complete.
Thanks to this, when the game receives the completion callback it is no longer possible to perform any operation on
the action which will be invalid soon anyway.
* Printing to log for better visibility of what ECF is doing
* Small comments and documentation fixes
* Fixed FAB link
###### 3.5.0
* Function to reset Actions added
* Action handle of the coroutine is now stored in the coroutine promise, and can be easily obtain when starting a coroutine and used to control the started Action.
* WaitAndExecute and WaitAndExecute_WithDeltaTime has been merged into one single action with multiple Setups
###### 3.4.0
* AddTimelineVector action added
* AddTimelineLinearColor action added
* AddCustomTimelineVector action added
* AddCustomTimelineLinearColor action added
###### 3.3.13
* uplugin fixes to prepare it for FAB
###### 3.3.12
* Fixed shadow variable warnings which failed compilation with clang.
###### 3.3.11
* Proper coroutine handle destruction for dangling handles.
###### 3.3.10
* Reverted coroutines explicit destroy from 3.3.6 as it was breaking the heap allocator when running Garbage Collector.
###### 3.3.9
* Fixed ECFHandle badly passed to the coroutine action.
* Ensuring coroutine handles are valid before resuming them.
###### 3.3.8
* Fixed coroutines compilation for the environment without coroutines support (which has been broken in 3.3.6).
###### 3.3.7
* Almost every action got alternative callbacks with the less amount of parameters that might not always be needed and are just confusing.
* Better commented callbacks parameters.
###### 3.3.6
* Properly destroying coroutine handlers for actions that has been aborted.
* Renamed CoroutineTasks to CoroutineAwaiters to keep proper naming conventions.
###### 3.3.5
* Removed few redundant IsInGameThread checks.
###### 3.3.4
* Fixed bad IsInGameThread check when starting a coroutine.
###### 3.3.3
* More strict checks for proxy validity in all Async Blueprint nodes.
* Prevent from starting any action from a non game thread.
* Ensure the Run Async And Wait object is still valid after exiting another thread.
###### 3.3.2
* Further fixes to prepare the plugin to be compiled for a marketplace. Tests against UE5.4.
###### 3.3.1
* Fixes to prepare the plugin to be compiled for a marketplace
###### 3.3.0
* Run Async Then action has been added, which allows to run code on a separate thread and waiting for it's completion.
* Run Async And Wait coroutine has been added, which is a coroutine version of Run Async Then
* Moved coroutine files to a separate directory to keep everything more organized
* Updated year in every file copyright note
###### 3.2.0
* COROUTINES! Now you can implement coroutine actions if your compiler supports c++20 (for UE5.3 and later).
* WaitSeconds coroutine added.
* WaitTicks coroutine added.
* WaitUntil coroutine added.
* Fixed lack of initial values of variables in multiple actions.
* Minor improvements to comments for functions in main header.
###### 3.1.1
* ECF subsystem is now a GameInstance Subsystem instead of the World Subsystem.
This will allow the ECF to be used in other GameInstance Subsystems which might work between game worlds.
###### 3.1.0
* DelayTicks action has been added, which executes the given action after the specified amount of ticks.
* Additional WaitAndExecute function wich DeltaTime value in a predicate.
* Better class naming: ECFTicker2 -> ECFTicker_WithHandle.
* Better Predicate BP nodes naming.
* Deprecation warning fix for UE5.0.
* Some fixes in code comments.
###### 3.0.4
* Deprecation fix for UE5.2 when disabling optimizations.
###### 3.0.3
* Deprecation fix for UE5.3.
###### 3.0.2
* More detailed stats added.
* Readme and comments fixes.
###### 3.0.1
* Fixed possible memory leaks when using BP functions.
* Added more stats to control memory usage.
* Added Unreal Insight cpu tracing for tick function.
###### 3.0.0
* This version will probably break compatiblity with the previous one. Update with caution!
* WorldContextObjects and Action Owners are passed as const UObject* now.
* Added option to setup TimeOuts for WaitAndExecute and WhileTrueExecute actions.
* Added bStopped property to every completion callback that informs if the action was stopped manually.
* Added OnComplete delegate to WhileTrueExecute action.
* Added Stat command to monitor the plugin performance.
* Added option to disable/enable compiler optimizations for easier debugging (to be set in the plugin's Build.cs file).
* Ensure only those instances of the subsystem are ticking that were created withing the game world.
=======================================================================================
###### 2.1.2
* Fixed an issue which could lead to duplicating InstanceIds.
###### 2.1.1
* Fixed all AsyncBP nodes. Using WorldContextObject instead of Proxy to determine Action Owner, so Actions started from BP can be stopped using StopAction with specified Owner set.
###### 2.1.0
* "Do No More Than X Time" action added which allows to enqueue to run the given block of code but no more often than a given amount of time.
###### 2.0.1
* Fix for the UECFActionBase forward declaration (@Matiis)
###### 2.0.0
* This version will probably break compatiblity with the previous one. Update with caution!
* BIG refactor of BP nodes - better readability and functionality.
* Added options to pause and resume running actions. Actions can also be started with pause enabled at the beginning.
* Added option to pause the whole subsystem.
* Async BP nodes sets action's owners to be themselves, not the WorldContextObjects.
* Removed Static InstanceIds, as they had no valid purpose.
* Added ToString node for ECFHandleBP.
* Added ToString functionality to InstancedId (code and bp).
* Added SetMaxActionTime() call to EVERY time dependent action.
* Added ensure msgs for situations when actions couldn't be executed properly.
* Removed Macro node for TimeLock and gave a convenient node to validate InstanceIds.
* Ensure the Custom Timeline always has a valid owner when performing it's actions.
=======================================================================================
###### 1.6.1
* Fixed ECFActionSettings macros
###### 1.6.0
* DoOnce action added.
* DoNTimes action added.
* Added an option to implement extra logic when instanced action is retriggered.
###### 1.5.2
* Redesigned Instanced Actions to be more useful and more readable.
###### 1.5.1
* Removed ECF_INSTANCEID macro as it was not needed.
* Cleared up how Instanced Actions should be used.
###### 1.5.0
* Added possibility to create Instanced actions.
* TimeLock action added.
* Added possibility to check if FECFHandle is valid in BP.
###### 1.4.4
* Fixed broken by previous version `bComplete` param.
* Fixed getting WorldContext in static functions, which was obtained by from invalid objects.
###### 1.4.3
* Action validity checks
* Crash fix
###### 1.4.2
* Additional checks for owners validity.
###### 1.4.1
* Added OnBegin exec to ECFDelay BP node, to have a chance to obtain a Handle.
* Refactored BP names.
* Optimized a little Handles moving.
###### 1.4.0
* Added `bComplete` parm to StopAction functions, which indicates if the Action should complete (run callback) when stopped, or just stopped without any extra action.
* Fixed bug in `StopAllActions` with `InOwner` defined (it was stopping all actions without checking the Owner).
* ECF_IGNOREPAUSEDILATION settings macro added which will ignore both pause and time dilation.
* Minor fixes in code comments.
* Moved Changelog to a separate file to clear up documentation.
###### 1.3.1
* **Blueprints support** has been added!
* `First Delay` setting has been added.
* Settings generating macros have been added.
* Minor interface fixes.
###### 1.2.0
* Ignore game pause extra setting added.
* Minor code readability improvements.
###### 1.1.1
* Ensure the time in timeline is always valid.
###### 1.1.0
* Option to set tick interval and to ignore global time dilation when launching each added action. Check `FECFActionSettings`
* Added additional callback to tickers which will launch when ticker finishes.
* Fixes to comments.