37 lines
635 B
GDScript
Executable File
37 lines
635 B
GDScript
Executable File
|
|
extends RigidBody
|
|
|
|
var picked_up
|
|
|
|
var holder
|
|
|
|
func pick_up(player):
|
|
holder = player
|
|
|
|
if picked_up:
|
|
leave()
|
|
else:
|
|
carry()
|
|
|
|
func _process(delta):
|
|
if picked_up:
|
|
set_global_transform(holder.get_node("Yaw/Camera/pickup_pos").get_global_transform())
|
|
|
|
func carry():
|
|
$CollisionShape.set_disabled(true)
|
|
holder.carried_object = self
|
|
self.set_mode(1)
|
|
picked_up = true
|
|
|
|
func leave():
|
|
$CollisionShape.set_disabled(false)
|
|
holder.carried_object = null
|
|
self.set_mode(0)
|
|
picked_up = false
|
|
|
|
|
|
|
|
func throw(power):
|
|
leave()
|
|
apply_impulse(Vector3(), holder.look_vector * Vector3(power, power, power))
|