2020.4.13.1289 - Context Menu for World Orbs, crash fixes and tweaks
More context menu! It's now also replacing the menus on the world orbs (thanks to @Danger Tester's for reporting some problems before the release!). More to come soon (like laser going through it so you can still double click the orbs). Also lots of tweaks and bugfixes, fixing some recent causes of crashes, UIX canvas breaking and potential memory leaks due to conservative Unity GC.
[h2]New Features:[/h2]
- Replaced the old radial menu on World Orbs with the new Radiant UI context menu
-- Right now, this blocks double clicks on the orb. This will be fixed in a few days when the laser itself is updated, so it supports going through the context menu
- Added a way to open the context menu in screen mode using the "R" key when a tooltip is equipped
-- Note this is mainly for testing purposes, some interactions don't work and some things are broken.
[h2]Security:[/h2]
- Changed public record listing logic on the cloud server to not list any public records of other users unless they're marked as listed (world submissions) or explicit path is provided
-- This mitigates listing of shared inventory folders and items unless someone knows the exact inventory path
-- This is only a mitigation. If you have sensitive items in your inventory, DO NOT create a link to those folders (using the Envelope button) - use the purple hand button to un-publish them
-- If you want to share private folders with other users you can request creation of a group (if you're Patreon supporter) or wait for this to be implemented. The envelope button is for fully public sharing.
[h2]Tweaks:[/h2]
- Snapper and SnapTarget will now not snap of either of the components is disabled (suggested by @H3BO3)
- Switched Fresnel Lerp Material to not use the late render queue. This fixes some alpha artifacts in the grid space
- Tweaked update order of the locomotion system, to help it get better in sync with the colliders and avoid them lagging a frame behind (based on feedback by @H3BO3)
- Cleaned up internal references in sync references and delegates to help aid GC more and prevent potential memory leaks
- Cleaned up more references and events in destroyed Slots, fixing another potential source of memory leaks
- Set the default position of the context menu a bit further away from the hand (based on general feedback)
- Added more cleanup to destroyed/closed worlds to avoid potential memory leaks
- Removed unused Slot tag tracking mechanism, reducing CPU and memory overhead for managing slots with a Tag
[h2]Bugfixes:[/h2]
- Fixed world crash when building object hierarchy string for diagnostic purposes (found in log from @H3BO3)
- Fixed crash/exception due to a race condition in audio stream, when it receives new data while being disposed (found in log from @H3BO3)
- Fixed UIX canvas breaking in certain cases when same element would get registered as changed twice due to parent structure changes
-- This should also fix some rare cases of UIX text potentially glitching out, due to race conditions
- Fixed grabbed item rotation not always working when one of the joystick axes is perfectly 0 (reported by @Hevon)
- Fixed LogiX connection point failing when a point is requested for impulse target method that has no proxy on the node (found in log provided by @Aetoriz)
- Fixed LogiX connection wire endlessly throwing exceptions, flooding the log with errors (reported by @Aetoriz)
- Fixed exception when building debug object hierarchy, causing Neos/World to crash (found in log from @Turk)
- Fixed exception when updating slot hiearchy event listeners, causing corruption of the data model and crashes (reported by @H3BO3, @spider and others, replicated by @Shifty)
- Fixed newly created cloud home sometimes not generating correct label with the user's name (reported by @Scary Guy [Debian Linux])
- Fixed some context menu items not showing any icons (reported by @Coffee)
- Fixed LogiX node packing not removing the grabbable component on the nodes
- Fixed LogiX cast nodes not getting fully removed when they're automatically destroyed, littering the world root (reported by @H3BO3 and @Shifty )
- Reworked the world/session orb session starting mechanism to help migitgate cases where multiple users clicking the orb at once cause multiple separate instances to open (based on feedback by @Turk, @H3BO3, @Shifty and others)

[h2]New Features:[/h2]
- Replaced the old radial menu on World Orbs with the new Radiant UI context menu
-- Right now, this blocks double clicks on the orb. This will be fixed in a few days when the laser itself is updated, so it supports going through the context menu
- Added a way to open the context menu in screen mode using the "R" key when a tooltip is equipped
-- Note this is mainly for testing purposes, some interactions don't work and some things are broken.
[h2]Security:[/h2]
- Changed public record listing logic on the cloud server to not list any public records of other users unless they're marked as listed (world submissions) or explicit path is provided
-- This mitigates listing of shared inventory folders and items unless someone knows the exact inventory path
-- This is only a mitigation. If you have sensitive items in your inventory, DO NOT create a link to those folders (using the Envelope button) - use the purple hand button to un-publish them
-- If you want to share private folders with other users you can request creation of a group (if you're Patreon supporter) or wait for this to be implemented. The envelope button is for fully public sharing.
[h2]Tweaks:[/h2]
- Snapper and SnapTarget will now not snap of either of the components is disabled (suggested by @H3BO3)
- Switched Fresnel Lerp Material to not use the late render queue. This fixes some alpha artifacts in the grid space
- Tweaked update order of the locomotion system, to help it get better in sync with the colliders and avoid them lagging a frame behind (based on feedback by @H3BO3)
- Cleaned up internal references in sync references and delegates to help aid GC more and prevent potential memory leaks
- Cleaned up more references and events in destroyed Slots, fixing another potential source of memory leaks
- Set the default position of the context menu a bit further away from the hand (based on general feedback)
- Added more cleanup to destroyed/closed worlds to avoid potential memory leaks
- Removed unused Slot tag tracking mechanism, reducing CPU and memory overhead for managing slots with a Tag
[h2]Bugfixes:[/h2]
- Fixed world crash when building object hierarchy string for diagnostic purposes (found in log from @H3BO3)
- Fixed crash/exception due to a race condition in audio stream, when it receives new data while being disposed (found in log from @H3BO3)
- Fixed UIX canvas breaking in certain cases when same element would get registered as changed twice due to parent structure changes
-- This should also fix some rare cases of UIX text potentially glitching out, due to race conditions
- Fixed grabbed item rotation not always working when one of the joystick axes is perfectly 0 (reported by @Hevon)
- Fixed LogiX connection point failing when a point is requested for impulse target method that has no proxy on the node (found in log provided by @Aetoriz)
- Fixed LogiX connection wire endlessly throwing exceptions, flooding the log with errors (reported by @Aetoriz)
- Fixed exception when building debug object hierarchy, causing Neos/World to crash (found in log from @Turk)
- Fixed exception when updating slot hiearchy event listeners, causing corruption of the data model and crashes (reported by @H3BO3, @spider and others, replicated by @Shifty)
- Fixed newly created cloud home sometimes not generating correct label with the user's name (reported by @Scary Guy [Debian Linux])
- Fixed some context menu items not showing any icons (reported by @Coffee)
- Fixed LogiX node packing not removing the grabbable component on the nodes
- Fixed LogiX cast nodes not getting fully removed when they're automatically destroyed, littering the world root (reported by @H3BO3 and @Shifty )
- Reworked the world/session orb session starting mechanism to help migitgate cases where multiple users clicking the orb at once cause multiple separate instances to open (based on feedback by @Turk, @H3BO3, @Shifty and others)


