how do i fix this
https://drive.google.com/uc?id=1v_8ftACp7oYXd8b_2HFCUbuQh42B3GzQ
heres the entire code
extends RayCast
var mass_limit = 100
var throw_force = 6
var grab_force = 9
var dist_limit = 2.5
var object_grabbed = null
var can_use = true
var text_visible = false
onready var player = get_tree().get_root().find_node("Player", true, false)
onready var head = player.get_node("Head")
func _ready():
$GrabText.modulate = Color(0.81, 0.5, 0.09, 0)
func vectorangle(obj1,obj2):
var vector = obj1.global_transform.origin - obj2.global_transform.origin
var angle = obj1.global_transform.basis.get_euler() - obj2.global_transform.basis.get_euler()
angle.y = fmod((angle.y + 2 * PI), 2 * PI) - PI
return [null,vector,angle,angle.x] #0,1,2
func _physics_process(_delta):
if object_grabbed:
var va = vectorangle($GrabPosition,object_grabbed)
var vector = va[1]
var angle = va[2]
if vector.length() >= dist_limit:
object_grabbed.set_mode(0)
release()
else:
object_grabbed.angular_velocity.y = angle.y * grab_force
object_grabbed.linear_velocity = vector * grab_force
object_grabbed.axis_lock_angular_x = true
object_grabbed.axis_lock_angular_z = true
var collider = get_collider()
if not object_grabbed and $TextTimer.is_stopped() and collider is RigidBody and collider.mass <= mass_limit:
var va = vectorangle($GrabPosition,collider)
var vector = va[1]
var angle = va[2]
if vector.length() >= dist_limit:
grab_text_disappears()
else:
grab_text_appears()
else:
grab_text_disappears()
if Input.is_key_pressed(KEY_E) or Input.is_joy_button_pressed(0, JOY_XBOX_Y):
if can_use:
can_use = false
if not object_grabbed:
if collider is RigidBody and collider.mass <= mass_limit:
var va = vectorangle($GrabPosition,collider)
var vector = va[1]
var angle = va[2]
if vector.length() >= dist_limit:
pass
else:
object_grabbed = get_collider()
else:
release()
else:
can_use = true
if Input.is_mouse_button_pressed(BUTTON_LEFT) or Input.get_joy_axis(0, 7) >= 0.6:
if object_grabbed:
object_grabbed.linear_velocity = global_transform.basis.z * clamp(1+(player.player_speed/6),1,4) * -throw_force
release()
func release():
object_grabbed.axis_lock_angular_x = false
object_grabbed.axis_lock_angular_y = false
object_grabbed.axis_lock_angular_z = false
object_grabbed = null
$TextTimer.start()
func grab_text_appears():
if not text_visible:
text_visible = true
var animation_speed = 0.25
$GrabTween.interpolate_property($GrabText, "margin_top", 90, 80, animation_speed, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
$GrabTween.interpolate_property($GrabText, "modulate", Color(1,1,1,0), Color(1,1,1,1), animation_speed, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
$GrabTween.start()
func grab_text_disappears():
if text_visible:
text_visible = false
var animation_speed = 0.25
$GrabTween.interpolate_property($GrabText, "margin_top", 80, 90, animation_speed, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
$GrabTween.interpolate_property($GrabText, "modulate", Color(1,1,1,1), Color(1,1,1,0), animation_speed, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
$GrabTween.start()
$TextTimer.start()