2020.10.4.411 - Audio bug mitigation & optimizations, Estonian locale, tweaks
More optimizations! This time various mitigations for the audio bug and reducing performance impact of background worlds. LogiX wire updates were optimized too, so moving huge chunks of LogiX in world should now use significantly less CPU.
Some new additions and fixes to Dynamic Variables were made too! The PBS Displace materials now also support dual sided rendering and Neos is now available in Estonian! Other tweaks and bugfixes as usual too.
[h2]New Features:[/h2]
- Added ClearDynamicVariables and ClearDynamicVariablesOfType LogiX nodes, which allow clearing all backing storage of dynamic variables in particular space (requested by @Coffee | Programmer)
- Added DynamicVariableInputWithEvents which is expanded version of the dynamic variable input that fires impulses when the variable becomes linked or unlinked from variable space
- PBS Displace materials now support dual-sided rendering through a new Culling property (requested by @Rukio)
- Added Estonian [et] locale by @pineappledreams
[h2]Optimizations:[/h2]
- Neos now delays updating connectors for background worlds, to avoid updates that currently have no visible effect from taking away CPU cycles
-- This should also significantly mitigate cases of the audio bug, particularly when triggered by spawning audio sources in one of the background worlds the user is in
- Reworked AudioOutput connector logic, which will now prevent allocating audio source for audio outputs that aren't active in the hierarchy and deallocates them whenever they become inactivate
-- This should also help with cases of the audio bug and decrease unecessary CPU load, particularly in worlds with many disabled audio outputs
- Added a threshold to updating the LogiX wire mesh properties, to prevent unecessary updates due to small fluctuations (e.g. when whole LogiX is moving with object - e.g. parented under avatar)
-- This helps fix big CPU usage and degradatation of other behaviors on weaker machines (based on issue reported by @Davwyn and investigated by @Shifty | Quality Control Lead)
Tweaks:
- Ref nodes no longer spawn on the referenced object and scale correctly when spawning (requested by @Cyro, @Hayden (PolyLogiX Studio), and many other people that I can't remember. Implemented by @Coffee | Programmer)
- DuplicatorTip now creates undo steps (suggested by @Turk)
- UIX Text now has "Interaction Target" option (requested by @Coffee | Programmer)
- Swapped order of AnchorMax/Min and OffsetMax/Min on RectTransform to be Min/Max (based on feedback by @ProbablePrime)
- Dynamic Bone Chain inspector actions are now localizable
- Merged Spanish locale additions by @Skywind Kitsune
- Merged Japanese locale fixes by @orange
- Merged German locale fixes by @Blaze
- Merged French locale fixes by @Archer
- Merged British English locale additions and English locale tweaks by @Enverex
[h2]Bugfixes:[/h2]
- Fixed swapped "Balance" and "Recipient" values in the Send Credits dialog (reported by @Bitman | PolyLogiX Studio)
- Fixed CreateDynamicVariable and WriteOrCreateDynamicVariable breaks when trying to create reference-typed variable (e.g. Slot or User) (reported by @Coffee | Programmer)

Some new additions and fixes to Dynamic Variables were made too! The PBS Displace materials now also support dual sided rendering and Neos is now available in Estonian! Other tweaks and bugfixes as usual too.
[h2]New Features:[/h2]
- Added ClearDynamicVariables and ClearDynamicVariablesOfType LogiX nodes, which allow clearing all backing storage of dynamic variables in particular space (requested by @Coffee | Programmer)
- Added DynamicVariableInputWithEvents which is expanded version of the dynamic variable input that fires impulses when the variable becomes linked or unlinked from variable space
- PBS Displace materials now support dual-sided rendering through a new Culling property (requested by @Rukio)
- Added Estonian [et] locale by @pineappledreams
[h2]Optimizations:[/h2]
- Neos now delays updating connectors for background worlds, to avoid updates that currently have no visible effect from taking away CPU cycles
-- This should also significantly mitigate cases of the audio bug, particularly when triggered by spawning audio sources in one of the background worlds the user is in
- Reworked AudioOutput connector logic, which will now prevent allocating audio source for audio outputs that aren't active in the hierarchy and deallocates them whenever they become inactivate
-- This should also help with cases of the audio bug and decrease unecessary CPU load, particularly in worlds with many disabled audio outputs
- Added a threshold to updating the LogiX wire mesh properties, to prevent unecessary updates due to small fluctuations (e.g. when whole LogiX is moving with object - e.g. parented under avatar)
-- This helps fix big CPU usage and degradatation of other behaviors on weaker machines (based on issue reported by @Davwyn and investigated by @Shifty | Quality Control Lead)
Tweaks:
- Ref nodes no longer spawn on the referenced object and scale correctly when spawning (requested by @Cyro, @Hayden (PolyLogiX Studio), and many other people that I can't remember. Implemented by @Coffee | Programmer)
- DuplicatorTip now creates undo steps (suggested by @Turk)
- UIX Text now has "Interaction Target" option (requested by @Coffee | Programmer)
- Swapped order of AnchorMax/Min and OffsetMax/Min on RectTransform to be Min/Max (based on feedback by @ProbablePrime)
- Dynamic Bone Chain inspector actions are now localizable
- Merged Spanish locale additions by @Skywind Kitsune
- Merged Japanese locale fixes by @orange
- Merged German locale fixes by @Blaze
- Merged French locale fixes by @Archer
- Merged British English locale additions and English locale tweaks by @Enverex
[h2]Bugfixes:[/h2]
- Fixed swapped "Balance" and "Recipient" values in the Send Credits dialog (reported by @Bitman | PolyLogiX Studio)
- Fixed CreateDynamicVariable and WriteOrCreateDynamicVariable breaks when trying to create reference-typed variable (e.g. Slot or User) (reported by @Coffee | Programmer)


