Properties
-
FeatureUtils _FEATURE_UTILS -
PlayerControls _PLAYER -
float _DISTANCE = 1.0 -
Vector3 _ZONE_SIZE = Vector3(0.25, 0.25, 0.25) -
String _ZONE_SCENE = "" -
SubSceneHost _ZONE_SCENE_HOST -
Area3D _UNDERNEATH_AREA -
RigidBody3D[] _UNDERNEATH_ITEMS = [] -
float _HOLD_FORCE = 275.0 -
float _MAX_HOLD_FORCE = 300.0 -
float _DAMPING_FORCE = 8.0 -
float _SWAY_STRENGTH = 0.3 -
Variant _ROTATION_SPEED = 1.0 -
float _MAX_HELD_DISTANCE = 5.5 -
Vector3 _HELD_INITIAL_ROTATION = Vector3(0, 0, 0) -
float _HELD_GRAVITY_SCALE = 0.0 -
float _HELD_LINEAR_DAMP = 0.0 -
float _HELD_ANGULAR_DAMP = 0.0 -
bool _HELD_CCD = false -
RigidBody3D _HELD -
RigidBody3D[] _HOLD_CANDIDATES = [] -
TrackingArea3D[] _TRIGGERS = [] -
TrackingArea3D[] _DEPOSITE_CANDIDATE_TRIGGERS = [] -
TrackingArea3D[] _WITHDRAW_CANDIDATE_TRIGGERS = [] -
Debounce _HOLD_COOLDOWN_DEBOUNCE = <unknown>
Methods
-
void _init(FeatureUtils feature_utils, PlayerControls player, float distance, Vector3 zone_size, String zone_scene) -
void _process(float delta) -
void apply_pickup_force(float delta) -
void apply_rotation_and_sway(float delta) -
void _setup_zone_scene() -
void _setup_underneath_area() -
void _on_add_underneath_item(Node b) -
void _on_remove_underneath_item(Node b) -
void _trigger_deposite_areas(RigidBody3D was_held) -
void _set_withdraw_areas() -
void _on_tracking_area_entered(Area3D a) -
void _on_tracking_area_exited(Area3D a) -
void _trigger_hold_zone_interact() -
void _on_hold_candidate_entered(Node3D b) -
void _on_hold_candidate_exited(Node3D b) -
void _drop_on_floor_raycast_collision() -
bool hold_items_available() -
bool holding() -
RigidBody3D[] get_holdable_items() -
RigidBody3D get_held_item() -
void hold_item() -
void drop_item() -
void _start_hold_cooldown() -
void _start_hold(RigidBody3D b) -
void _stop_hold()
Signals
-
signal holdable_items_available_change() -
signal held_item_changed()
Download