Component:Grabbable: Difference between revisions

From Resonite Wiki
add tempate
Automated: update Fields, Categories
Line 14: Line 14:
|DestroyOnRelease|Bool| The slot this component is attached to is destroyed upon release
|DestroyOnRelease|Bool| The slot this component is attached to is destroyed upon release
|GrabPriority|Int| {{Template:Grab Priority}}
|GrabPriority|Int| {{Template:Grab Priority}}
|GrabPriorityWhenGrabbed|Int|
|GrabPriorityWhenGrabbed|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Int|Int]]>'''|TypeAdv4=true|
|CustomCanGrabCheck|GrabCheck| ''Not Usable inside Resonite'' Requires a mod for interacting with [[Sync Delegates]]
|CustomCanGrabCheck|{{RootFieldType|SyncDelegate`1|[[Type:GrabCheck|GrabCheck]]}}|TypeAdv5=true| ''Not Usable inside Resonite'' Requires a mod for interacting with [[Sync Delegates]]
|EditModeOnly|Bool| Determines if this grabbable is effective only in [[Edit Mode]]
|EditModeOnly|Bool| Determines if this grabbable is effective only in [[Edit Mode]]
|AllowSteal|Bool| Other users can grab the slot this component is attached to.
|AllowSteal|Bool| Other users can grab the slot this component is attached to.
|DropOnDisable|Bool| The parent slot will be dropped when this component is disabled.
|DropOnDisable|Bool| The parent slot will be dropped when this component is disabled.
|ActiveUserFilter|ActiveUserHandling|  
|ActiveUserFilter|ActiveUserHandling|
|OnlyUsers|UserRef| A list of users that are allowed to grab this slot.
|OnlyUsers|{{RootFieldType|SyncList`1|[[Type:UserRef|UserRef]]}}|TypeAdv10=true| A list of users that are allowed to grab this slot.
|Scalable|Bool| The parent slot can be scaled
|Scalable|Bool| The parent slot can be scaled
|Receivable|Bool| The parent slot can be dropped onto a [[GrabbableReceiverSurface (Component)|GrabbableReceiverSurface]]
|Receivable|Bool| The parent slot can be dropped onto a [[GrabbableReceiverSurface (Component)|GrabbableReceiverSurface]]
|AllowOnlyPhysicalGrab|Bool| Only allow grab an object with a physical interaction - remote grabs are not allowed
|AllowOnlyPhysicalGrab|Bool| Only allow grab an object with a physical interaction - remote grabs are not allowed
|_grabber|Grabber| ''Automatically Assigned''
|_grabber|'''[[Component:Grabber|Grabber]]'''|TypeAdv14=true| ''Automatically Assigned''
|_lastParent|Slot| ''Automatically Assigned''
|_lastParent|Slot| ''Automatically Assigned''
|_lastParentIsUserSpace|Bool| ''Automatically Assigned''
|_lastParentIsUserSpace|Bool| ''Automatically Assigned''
Line 42: Line 42:
{{stub}}
{{stub}}


[[Category:Components|Grabbable (Component)]]
[[Category:Components:Transform:Interaction{{#translation:}}|Grabbable]]
[[Category:Components:Transform:Interaction|Grabbable (Component)]]
[[Category:Components{{#translation:}}|Grabbable]]

Revision as of 21:33, 3 March 2024

This article or section is a Stub. You can help the Resonite Wiki by expanding it.


Component image 
Grabbable component as seen in the Scene Inspector

Introduction

Grabbable is a complicated thing

— AlexFromAlaska

The Grabbable component allows you to grab any slot it is attached to, provided it has some type of Collider.

Usage

Fields
Name Type Description
persistent Bool Determines whether or not this item will be saved to the server.
UpdateOrder Int Controls the order in which this component is updated.
Enabled Bool Controls whether or not this component is enabled.
ReparentOnRelease Bool The slot is reparented to the value of _lastParent, instead of root when dropped *
PreserveUserSpace Bool The slot is reparented to Local User Space *
DestroyOnRelease Bool The slot this component is attached to is destroyed upon release
GrabPriority Int 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.
GrabPriorityWhenGrabbed Nullable`1<Int>
CustomCanGrabCheck GrabCheck Not Usable inside Resonite Requires a mod for interacting with Sync Delegates
EditModeOnly Bool Determines if this grabbable is effective only in Edit Mode
AllowSteal Bool Other users can grab the slot this component is attached to.
DropOnDisable Bool The parent slot will be dropped when this component is disabled.
ActiveUserFilter ActiveUserHandling
OnlyUsers list of UserRef A list of users that are allowed to grab this slot.
Scalable Bool The parent slot can be scaled
Receivable Bool The parent slot can be dropped onto a GrabbableReceiverSurface
AllowOnlyPhysicalGrab Bool Only allow grab an object with a physical interaction - remote grabs are not allowed
_grabber Grabber Automatically Assigned
_lastParent Slot Automatically Assigned
_lastParentIsUserSpace Bool Automatically Assigned
__legacyActiveUserRootOnly Bool Automatically Assigned

Behavior

The interaction between ReparentOnRelease, PreserveUserSpace and any Grabbable Extensions, such as GrabbableReparentBlock, is somewhat complex.

When released, the following will be evaluated, in order:

  1. If ReparentOnRelease is true, the slot will be parented to the value in _lastParent
  2. If PreserveUserSpace and _lastParentIsUserSpace is true, the slot will be parented to Local User Space
  3. If an Grabbable Extension 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
  4. 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.