11![ ] ( https://img.shields.io/badge/UE-5.5.3-green )
22![ ] ( https://img.shields.io/badge/UE-5.4.4-green )
33
4- ## List of nodes:
4+ # About
5+ I was frankly tired of using ` CreateWidgetAsync ` with no convenient option to assign properties without introducing hard-ref.
56
6- - [ ` CowCreateWidgetAsync ` - Ultimate Create Widget Async] ( #CowCreateWidgetAsync )
7+ Hopefully the name ` Cow Nodes ` will become true someday and there will be more public nodes but everything needs to be started at some point.
8+
9+ # List of nodes:
710
8- ### CowCreateWidgetAsync
11+ - [ ` CowCreateWidgetAsync ` - Ultimate Create Widget Async ] ( #CowCreateWidgetAsync )
912
13+ # CowCreateWidgetAsync
1014Improved Version of Epic's ` CreateWidget ` and ` CreateWidgetAsync ` (from ` CommonGame ` )
1115
12- This version combines the best of both worlds with general quality-of-life improvements:
16+ This version combines the best of both worlds with general quality-of-life improvements
17+ ![ Autowire] ( Docs/NodeIntro.gif )
1318
1419## Key Features
1520
16- - ** No Hard References** : Does not introduce a hard reference to the selected widget class in packaged game (similar to ` CreateWidgetAsync ` ).
21+ - ** No Hard References** : Does not introduce a hard reference to the selected widget class in packaged game (similar to ` CreateWidgetAsync ` ).
22+ ![ Tested async loading] ( Docs/LoadAssetProfile.png )
23+
1724- ** ExposedOnSpawn Parameters** : Displays any ` ExposedOnSpawn ` parameters (similar to ` CreateWidget ` ).
1825- ** Automatic Handling of ` ExposedOnSpawn ` Variables** : Automatically adds new ` ExposedOnSpawn ` variables (which ` CreateWidget ` does not handle).
1926- ** Widget Class Pin Enhancements** :
@@ -27,14 +34,14 @@ This version combines the best of both worlds with general quality-of-life impro
2734 1 . Display any exposed members (` Text ` will be shown).
2835 2 . Set the return type of the node to ` WBP_BaseWidget ` .
2936 (Because the pin type already introduces a hard reference (` SoftClass ` property to a type ` X ` is a hard reference to ` X ` )
37+ ![ Autowire] ( Docs/PromotedReturn.gif )
3038- ** Optimal Return Value** : The return value is always the best possible option that avoids a hard reference.
3139It will be either the first native class or the widget class if linked to a pin that introduced a hard reference.
3240- ** Improved Auto-Wiring** : Proper auto-wiring for ` ReturnType ` to avoid the common mistake of using the ` Then ` pin instead of ` OnWidgetCompleted ` .
33- ![ Autowire] ( Autowire.gif )
41+ ![ Autowire] ( Docs/ Autowire.gif)
3442- ** User-Friendly Notes** : Generates informative notes when actions might cause errors.
35- - Examples:
36- - Introduction of a hard reference.
37- - Keeping default values of the base class when a pin of the base class is hooked, which may differ at runtime.
43+ - Introduction of a hard reference.
44+ - Keeping default values of the base class when a pin of the base class is hooked, which may differ at runtime.
3845- ** Fix for ` FKismetCompilerUtilities::GenerateAssignmentNodes ` ** :
3946 - Prevents ` DynamicCast ` from creating a hard reference through native properties with ` BlueprintSetter ` .
4047 - See ` FCowCompilerUtilities::GenerateAssignmentNodes ` for implementation details.
0 commit comments