2021.9.6.614 - Parent Data Link, TubeWireMesh, time skip tweaks, fixes and more
Hello everyone! Sorry for lack of builds, I've been working on a thing for educational project that we're part of, but here's a bunch of improvements and additions, some of those are general additions that I needed for this project that should help with other things too!
Anotable addition is a new Parent Data Link mechanism! It lets you drive a child value (of any type pretty much) based on which Slot it's parented under, which should allow for a bunch of new cool patterns!
There's also now a TubeWireMesh (essentially same type of mesh as LogiX wires, but tube instead of strip) and RemoteConnectionPointDriver which lets you dynamically drive it (and the StripeWireMesh) to do things like cables and such!
Some tweaks and bugfixes as well!
[h2]New Features;[/h2]
- Added Parent Data Link mechanism
-- This allows dynamically linking values and references by being directly parented under a slot
-- Parent Slot provides the value with ParentValue or ParentReference components
-- Child with ParentValueLink or ParentReferenceLink will drive target field/reference from the Parent's value when directly under them
-- You can differentiate multiple links with the same value using a Tag/MatchTag
-- WriteBack is supported - when enabled changing the child value will update the parent's
-- This is a lighter mechanism and doesn't require setting up dynamic variable space, but requires the child to be immediately parented under given slot. It can be useful for linking up values on snapping and similar
- Added TubeWireMesh
-- This is analogous to StripeWireMesh, but a tube shape instead of a flat stripe
- Added RemoteConnectionPointDriver
-- This allows driving local position, vector, orientation and size from a target Slot. It can be used with TubeWireMesh and StripeWireMesh to drive the other point from another slot
- Added IsUserSilenced node (requested by @3x1t_5tyl3, GH #2933)
- Added IsContact to CloudUserInfo which indicates whether the given user is contact or not (requested by @kazu0617 Neos:kazu, GH #2935)
-- This will only be reported in the userspace for security reasons
- Inspector now generates items for empty (non-value) sync elements (e.g. LinkTargets) to allow them being assigned as references
- Added internal mechanism for asynchronously computing exact boudning box
-- For mesh colliders and mesh renderers this actually transforms each vertex, rather than the mesh
[h2]Tweaks:[/h2]
- ExternalSlotSaver will not relocate the target Slot on saving if it's part of the hierarchy that's being saved
-- E.g. when it's together with the ExternalSlotSaver under an object that's being saved or when the entire world is being saved
- Made tweaks to the master clock synchronization to potentially improve undesired time skips (based on issue by @Enverex, @Kulza, @Lexevo, GH #2943)
-- When encoding, the update time is compensated, rather than using time from the beginning of the update, in case there's a several second lag during the frame update
-- If the received time is older than the last received one, it'll be rejected, in case there are stray delayed packets
-- Added extra diagnostics
- ScaleObjectCreator now uses exact bounds fo the object to ensure a close fit (based on feedback by @Aegis_Wolf | Creative Director)
- Merged Czech locale update by @rampa_3 (UTC +1, DST UTC +2)
- Merged Dutch locale update by @AnotherFoxGuy
- Merged Russian locale update by @Shadow Panther [RU/EN, UTC+3]
[h2]Security:[/h2]
- Neos will now send an email on successful password reset using a recovery code (based on suggestion by @Marco Sizemore, GH #2877)
[h2]Bugfixes:[/h2]
- Fixed cloud not responding with an error when accesing GitHub API fails due to rate limit (based on report by @Lexevo, @Sox, GH #2942)

Anotable addition is a new Parent Data Link mechanism! It lets you drive a child value (of any type pretty much) based on which Slot it's parented under, which should allow for a bunch of new cool patterns!
There's also now a TubeWireMesh (essentially same type of mesh as LogiX wires, but tube instead of strip) and RemoteConnectionPointDriver which lets you dynamically drive it (and the StripeWireMesh) to do things like cables and such!
Some tweaks and bugfixes as well!
[h2]New Features;[/h2]
- Added Parent Data Link mechanism
-- This allows dynamically linking values and references by being directly parented under a slot
-- Parent Slot provides the value with ParentValue or ParentReference components
-- Child with ParentValueLink or ParentReferenceLink will drive target field/reference from the Parent's value when directly under them
-- You can differentiate multiple links with the same value using a Tag/MatchTag
-- WriteBack is supported - when enabled changing the child value will update the parent's
-- This is a lighter mechanism and doesn't require setting up dynamic variable space, but requires the child to be immediately parented under given slot. It can be useful for linking up values on snapping and similar
- Added TubeWireMesh
-- This is analogous to StripeWireMesh, but a tube shape instead of a flat stripe
- Added RemoteConnectionPointDriver
-- This allows driving local position, vector, orientation and size from a target Slot. It can be used with TubeWireMesh and StripeWireMesh to drive the other point from another slot
- Added IsUserSilenced node (requested by @3x1t_5tyl3, GH #2933)
- Added IsContact to CloudUserInfo which indicates whether the given user is contact or not (requested by @kazu0617 Neos:kazu, GH #2935)
-- This will only be reported in the userspace for security reasons
- Inspector now generates items for empty (non-value) sync elements (e.g. LinkTargets) to allow them being assigned as references
- Added internal mechanism for asynchronously computing exact boudning box
-- For mesh colliders and mesh renderers this actually transforms each vertex, rather than the mesh
[h2]Tweaks:[/h2]
- ExternalSlotSaver will not relocate the target Slot on saving if it's part of the hierarchy that's being saved
-- E.g. when it's together with the ExternalSlotSaver under an object that's being saved or when the entire world is being saved
- Made tweaks to the master clock synchronization to potentially improve undesired time skips (based on issue by @Enverex, @Kulza, @Lexevo, GH #2943)
-- When encoding, the update time is compensated, rather than using time from the beginning of the update, in case there's a several second lag during the frame update
-- If the received time is older than the last received one, it'll be rejected, in case there are stray delayed packets
-- Added extra diagnostics
- ScaleObjectCreator now uses exact bounds fo the object to ensure a close fit (based on feedback by @Aegis_Wolf | Creative Director)
- Merged Czech locale update by @rampa_3 (UTC +1, DST UTC +2)
- Merged Dutch locale update by @AnotherFoxGuy
- Merged Russian locale update by @Shadow Panther [RU/EN, UTC+3]
[h2]Security:[/h2]
- Neos will now send an email on successful password reset using a recovery code (based on suggestion by @Marco Sizemore, GH #2877)
[h2]Bugfixes:[/h2]
- Fixed cloud not responding with an error when accesing GitHub API fails due to rate limit (based on report by @Lexevo, @Sox, GH #2942)


