
Godot Addon API Docs
HoldZone — API
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()