Some more improvements and additions for cloud variables, as well as a bunch of other tweaks and bugfixes! This build's a bit smaller sorry, the weekly update took most of the time today to do! ^^; I should have more stuff tomorrow, but I wanted to push this out so it doesn't have to wait!
New Features:
-
Added ActiveUserCloudValueVariable<T> and ActiveUserCloudField<T>
-- These will sync value/field to the cloud variable owned by the user under which the component is currently parented
-- Everyone in the session will see this user's value, unlike CloudValueVariableDriver<T> which locally drives it for each user -
Added CloudValueField<T>
-- This is similar to CloudValueVariable<T>, but uses external field instead of one on the component -
Added definition_owner_unsafe permission
-- This is same as definition_owner, but allows read/write in unsafe context (e.g. Worldspace, rather than just Userspace) -
Added RandomBool node that randomly outputs true or false (requested by @̣)
-- You can control probability of true with the Change input (default 0.5, meaning 50/50 chance between True and False) -
Added ReferenceCast<I,O> which allows driving target reference of type O using a reference of type I
-- Note that currently there is not a nice way to instantiate this component, as the UI doesn't support multiple generic arguments at the time and it serves more as foundational addition. You can however setup casts with LogiX in the meanwhile
Tweaks:
- Added validation for Write and List permissions on Cloud Variables to avoid setting invalid permissions
-- List permissions cannot be set to variable_owner or variable_owner_unsafe anymore, only definition_owner or anyone
-- Write permissions on User-defined variable cannot be anyone or definition_owner anymore to reflect their limitations (Group defined variables do not have this restriction)
-- Existing variable definitions were auto-updated to respect those rules - Added missing type aliases for uint2/3/4, long2/3/4 and ulong2/3/4
-- This fixes cloud variables of these types not working (reported by @Robyn (QueenHidi))
-- This also lets you use those aliases when attaching components in the inspector - Desktop reticle will stay activated when clicking and scrolling now, in addition to mouse movement (based on feedback by @Psychpsyo)
- Laser cursor texture now uses Clamp edge mode rather than Repeat, preventing some visual artifacts (reported by @Psychpsyo)
Bugfixes:
- Fixed Neos Components not handling permissions for variables defined or values owned by groups properly, making it impossible to read/modify them even though the user is member of given group (based on report by @Robyn (QueenHidi))
-- Note that for group-owned variable values, the host must be member of the group for the read/write to work - Fixed /getUserVar command without arguments not working properly
- Fixed components using RefID as generic argument failing to load on the latest build (reported by @Raith (CytraX), @Shifty | Quality Control Lead, @Kal, @orange, @Epsilion, @H3BO3 and others)
-- Note that when possible, it's recommended to avoid using RefID's directly though and instead use casts - ButtonValueShift will now wrap around properly when going in reverse (reported by @̣ and @Epsilion)
- DynamicValueVariableDriver<T>, UserDistanceValueDriver<T>, ValueUserOverride<T> and Slider<T> now initialize their default values to valid quaternions for floatQ and doubleQ datatypes (based on report by @̣ and @Ukilop)
- Fixed Leap Motion ignoring the Enabled setting (reported by @Strydr)
Changed depots in android-preview branch