reznok / GMCAbilitySystem

An Unreal Engine plugin that adds an ability system to the General Movement Component plugin
MIT License
35 stars 16 forks source link

Tag Change Delegates #32

Closed Packetdancer closed 8 months ago

Packetdancer commented 8 months ago

This is an actual feature addition, separate from the cleanup PR, and adds several things:

The second of those is also necessary to (properly) create a GMCAbilitySystem equivalent to GAS's ability to map tag filters to blueprint properties and have them automatically updated, which is kinda useful in general and very useful in animation blueprints specifically.

Packetdancer commented 8 months ago

I just went ahead and added the rest of #22 to this pull request.

There's now an FGMCGameplayElementTagPropertyMap which can map changes to the active tags to a blueprint property automatically, utilizing the filtered tag change delegates. Each individual mapping supports taking a gameplay tag container and mapping it to one property on the blueprint which owns the property map.

Tag matches are not exact, so you can map a parent tag and it will match the children.

This also adds an UGMCAbilityAnimInstance animation blueprint parent, which automatically populates a convenience reference to the owning actor's ability component, and has a property map built in.

Additionally, because there's no way to have an appropriate detail widget for this otherwise, there's now a GMCAbiltySystemEditor module which contains a property detail customization to allow editing the property mapping.

reznok commented 8 months ago

Pax this is insanely impressive. Thank you.

LeoFabre commented 8 months ago

This is amazing. Thanks a huge ton ! 😍 Can't wait to use this