2024.3.12.87 - Particle system brushes, lots of bugfixes and tweaks

Resonite

Enter a novel digital universe with infinite possibilities. Whether you resonate with people around the world in a casual conversation, playing games and socializing or you riff off each other when creating anything from art to programming complex games, you'll find your place here.

Here's a whole bunch of bugfixes and tweaks (most of them from @probableprime who's been working on them for past few weeks)! Also few neat new things. You can now make particle system brushes, which can create all kinds of pretty effects and be useful for other things. Most of my time still goes into the new Settings UI still, you can watch progress in #devlog, but I wanted to pull in a bunch of the improvements and have a little intermission, so here it is! [h2]New Features:[/h2] - Add support for particle systems to the brush system, which allows drawing strokes that emit particle from the stroke geometry (this has been added as "Froox fun" feature, see here: https://github.com/orgs/Yellow-Dog-Man/projects/18/views/1, issue #1474) -- For this to work, you need to assign ParticleSystem & meshEmitterTemplate on the brush -- You can control how the template is duplicated (or not) via ParticleTemplateHandling -- By setting optional EmissionRatePerUnitLength, the emission rate will be auto-computed based on the length of the stroke -- By setting the CurrentMaterial to null, no visible mesh will be instantiated - Added CanBeGrabbed node -- This allows you to determine if a given object can be grabbed by a given grabber or not -- This automatically determines if there's an active grabber [h2]Tweaks:[/h2] - Update AMD Compressonator libraries to latest (v.4.5.52) to potentially fix errors when processing certain assets (based on internal bug report by @probableprime) - Allow network relays/bridges to override the address they're accessible at (implemented by @probableprime) -- This allows better support for using bridges/relays in internal company networks - Updated yt-dlp to latest version (from 2023.11.16 to 2024.03.10) [h2]Security:[/h2] - Fxied being able to export items in worlds that do not allow saving them (fixed by @probableprime, reported by @yoshi1123_ via security report ticket) - Fixed crash from SimplexNoise2D when it's fed certain negative values (fixed by @probableprime, reported by @euphieeuphoria via security report ticket) - Importing `.log` files will now not use RTF parsing to improve performance and fix crashes (fixed by @probableprime, reported by TheAutopilot via security report ticket) [h2]Locale:[/h2] - Merged Korean locale update by @mirpasec [h2]Bugfixes:[/h2] - Fixed OnGrip(Start/Stay/End) nodes throwing an exception when evaluated (fixed by @probableprime, reported by @zyzylian, @marsmaantje, @beaned and @rukio, issue #147) - Fixed OnLocomotionGrip(Start/End) nodes not working properly (fixed by @probableprime, reported by @zyzylian, @marsmaantje, @beaned and @rukio, issue #153) - Fixed division of int/long MinValue by -1 resulting in crash (fixed by @probableprime, reported by GreaseMonkey via security ticket and @r3c0d3r and @mirpasec, issue #1425) - Fix NaN/Infinity metrics (e.g. when NaN is input as LayoutElement metric) causing UIX canvases to become corrupted (based on report by @ryuvi and @aegis_wolf, issue #1374) - Implemented detection of corrupted mesh files to prevent repeated failures in the asset variant system