2020.9.21.475 - Dynamic Variable system matures and LogiX bindings, bugfixes
The dynamic variable system is now maturing and ready for proper use! Added LogiX bindings to make it easy to integrate it into your interactive setups as well as versions of the components for reference dynamic variables.
Also adding initial Finnish and French translations from community contributions! The user search has been fixed as well as some shaders (like fog box volume rendering through).
[h2]New Features:[/h2]
- Added LogiX nodes to work with the dynamic variable spaces (under Variables). Same syntax as with components applies.
-- DynamicVariableInput - will link up with dynamic variable in the hierarchy the node is in (meaning you need to pack first to work). Will notify when the variable value changes, RECOMMENDED to use when possible!
-- ReadDynamicVariable - reads dynamic variable from a target point in hierarchy, use for dynamic lookups, won't notify when variable changes
-- WriteDynamicVariable - write a value to existing dynamic variable at some target point in hierarchy
-- CreateDynamicVariable - will create backing storage for a dynamic variable if it does not exist
-- WriteOrCreateDynamicVariable - will create backing storage if it doesn't exist or just write a new value
-- DeleteDynamicVariable - will remove all backing storage components for given dynamic variable
- Added DynamicReferenceVariable - has storage for a dynamic variable that's a reference to an object
- Added DynamicReferenceVariableReset - analogous to the value reset, but for references
- Added DynamicReference - uses external reference as backing storage for reference dynamic variable (analogous to DynamicField)
- Added DynamicReferenceVariableDriver - drives a target reference from a dynamic variable (no backing storage)
- Added support for generic node presets in the node browser for common types (this allows creating nodes like DynamicImpulseReceiver from common types directly from the menu)
- Added initial Finnish (fi) translation strings by @AdmiralSoap
- Added initial French (fr) translation strings by @Archer
[h2]Tweaks:[/h2]
- Merged German locale improvements by Schwefelhexafluorid (GitHub handle, not sure what the Discord one is, sorry!)
- Merged Turkish MMC strings by @Blaze
- Merged Esperanto, Japanese and Chinese locale fixes from @Melnus
- LogiX variable nodes were moved to "Variables/Storage"
- Added French pluralizer (requested by @Archer)
- Renamed DynamicVariable to DynamicValueVariable
- Renamed DynamicVariableReset to DynamicValueVariableReset
- Renamed DynamicVariableDriver to DynamicValueVariableDriver
[h2]Bugfixes:[/h2]
- Fixed DynamicVariableReset potentially resetting dynamic variable with no backing storage, causing inconsistent behavior
- Fixed user search on the Contacts screen not showing any newly registered users after recent changes to API sanitization (reported by @Kulza#8623 and @MattyK through @Shifty | Quality Control Lead)
- Fixed FogBoxVolume in Worldspace mode rendering through everything, even if the boundaries of the volume are obscured (discovered with @Rue Shejn | Artist 3D)
- Fixed PBS Displace Metallic/Transparent in AlphaBlend mode not casing properly displaced shadows (discovered with @Aegis_Wolf | Art Director)

Also adding initial Finnish and French translations from community contributions! The user search has been fixed as well as some shaders (like fog box volume rendering through).
[h2]New Features:[/h2]
- Added LogiX nodes to work with the dynamic variable spaces (under Variables). Same syntax as with components applies.
-- DynamicVariableInput - will link up with dynamic variable in the hierarchy the node is in (meaning you need to pack first to work). Will notify when the variable value changes, RECOMMENDED to use when possible!
-- ReadDynamicVariable - reads dynamic variable from a target point in hierarchy, use for dynamic lookups, won't notify when variable changes
-- WriteDynamicVariable - write a value to existing dynamic variable at some target point in hierarchy
-- CreateDynamicVariable - will create backing storage for a dynamic variable if it does not exist
-- WriteOrCreateDynamicVariable - will create backing storage if it doesn't exist or just write a new value
-- DeleteDynamicVariable - will remove all backing storage components for given dynamic variable
- Added DynamicReferenceVariable - has storage for a dynamic variable that's a reference to an object
- Added DynamicReferenceVariableReset - analogous to the value reset, but for references
- Added DynamicReference - uses external reference as backing storage for reference dynamic variable (analogous to DynamicField)
- Added DynamicReferenceVariableDriver - drives a target reference from a dynamic variable (no backing storage)
- Added support for generic node presets in the node browser for common types (this allows creating nodes like DynamicImpulseReceiver from common types directly from the menu)
- Added initial Finnish (fi) translation strings by @AdmiralSoap
- Added initial French (fr) translation strings by @Archer
[h2]Tweaks:[/h2]
- Merged German locale improvements by Schwefelhexafluorid (GitHub handle, not sure what the Discord one is, sorry!)
- Merged Turkish MMC strings by @Blaze
- Merged Esperanto, Japanese and Chinese locale fixes from @Melnus
- LogiX variable nodes were moved to "Variables/Storage"
- Added French pluralizer (requested by @Archer)
- Renamed DynamicVariable to DynamicValueVariable
- Renamed DynamicVariableReset to DynamicValueVariableReset
- Renamed DynamicVariableDriver to DynamicValueVariableDriver
[h2]Bugfixes:[/h2]
- Fixed DynamicVariableReset potentially resetting dynamic variable with no backing storage, causing inconsistent behavior
- Fixed user search on the Contacts screen not showing any newly registered users after recent changes to API sanitization (reported by @Kulza#8623 and @MattyK through @Shifty | Quality Control Lead)
- Fixed FogBoxVolume in Worldspace mode rendering through everything, even if the boundaries of the volume are obscured (discovered with @Rue Shejn | Artist 3D)
- Fixed PBS Displace Metallic/Transparent in AlphaBlend mode not casing properly displaced shadows (discovered with @Aegis_Wolf | Art Director)


