(One intermediate revision by one other user not shown)
Line 1:
Line 1:
{{stub}}
{{Infobox Component
{{Infobox Component
|Image=GrabbableComponent.png
|Image=GrabbableComponent.png
Line 28:
Line 27:
|__legacyActiveUserRootOnly|Bool| ''Automatically Assigned'' Legacy do not use. Used to handle whether only the active user can grab. Use <code>ActiveUserFilter</code> instead!
|__legacyActiveUserRootOnly|Bool| ''Automatically Assigned'' Legacy do not use. Used to handle whether only the active user can grab. Use <code>ActiveUserFilter</code> instead!
}}
}}
== Behavior==
== Behavior==
The interaction between <code>ReparentOnRelease</code>, <code>PreserveUserSpace</code> and any [[:Category:GrabbableExtensions|Grabbable Extensions]], such as [[Component:GrabbleReparentBlock|GrabbableReparentBlock]], is somewhat complex.
The interaction between <code>ReparentOnRelease</code>, <code>PreserveUserSpace</code> and any [[:Category:Grabbable extensions|Grabbable extensions]], such as [[Component:GrabbableReparentBlock|GrabbableReparentBlock]], is somewhat complex.
When released, the following will be evaluated, in order:
When released, the following will be evaluated, in order:
#If <code>ReparentOnRelease</code> is true, the slot will be parented to the value in <code>_lastParent</code>
#If <code>ReparentOnRelease</code> is true, the slot will be parented to the value in <code>_lastParent</code>
#If <code>PreserveUserSpace</code> and <code>_lastParentIsUserSpace</code> is true, the slot will be parented to [[Local User Space]]
#If <code>PreserveUserSpace</code> and <code>_lastParentIsUserSpace</code> is true, the slot will be parented to [[ProtoFlux:LocalUserSpace|Local User Space]]
#If an [[Type:IGrabbable|IGrabbable]] exists above this component in the hierarchy, and it is within the <code>MaxDepth</code> specified in the block, the slot will be parented to [[Local User Space]]
#If an [[Type:IGrabbable|IGrabbable]] exists above this component in the hierarchy, and it is within the <code>MaxDepth</code> specified in the block, the slot will be parented to Local User Space
#Otherwise, the slot is parented to root.
#Otherwise, the slot is parented to root.
----You can drive the scale of a Grabbable object if the <code>Scalable</code> boolean is false.
----You can drive the scale of a Grabbable object if the <code>Scalable</code> boolean is false.
Determines what gets grabbed if several grabbable objects are touching someone's grab sphere. The IGrabbable with the highest priority will be grabbed first. If the highest priority ties with another IGrabbable, it will grab both of those and ignore any lower priority IGrabbables.
Optionally changes the grab priority of the object when it is already being grabbed. Useful for different behavior when it can be grab stolen by another player.
Receivable determines if a grabbable can be dropped onto a GrabbableReceiverSurface when let go of. The receivable has to be close enough for the receiver to receive it.
When released, the following will be evaluated, in order:
If ReparentOnRelease is true, the slot will be parented to the value in _lastParent
If PreserveUserSpace and _lastParentIsUserSpace is true, the slot will be parented to Local User Space
If an IGrabbable exists above this component in the hierarchy, and it is within the MaxDepth specified in the block, the slot will be parented to Local User Space
Otherwise, the slot is parented to root.
You can drive the scale of a Grabbable object if the Scalable boolean is false.
Examples
This article or section is a stub. You can help the Resonite wiki by expanding it.
See Also
IGrabbable for a list of grabbable types that act similar but not the same as this component.