aboutsummaryrefslogtreecommitdiff
path: root/client/map/items/item.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/map/items/item.gd')
-rw-r--r--client/map/items/item.gd9
1 files changed, 5 insertions, 4 deletions
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
index bf61966f..ea5b3937 100644
--- a/client/map/items/item.gd
+++ b/client/map/items/item.gd
@@ -20,6 +20,8 @@ const CHECKMARK: PackedScene = preload("uid://bdbw8whs3data")
var owned_by: Node3D
var base: Node3D = Node3D.new()
+var rotation_target: float = 0.
+var position_target: Vector3 = Vector3(0., 0., 0.)
var progress_instance: Progress3D = preload("res://map/progress/progress.tscn").instantiate()
var take_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate()
@@ -63,12 +65,11 @@ func _process(delta):
var player_owned = owned_by.get_parent().get_parent() is Player
player_owned_timer = player_owned_timer + delta if player_owned else 0.
var anim_speed = 10.0 * exp(player_owned_timer * 3.0) # infinity is fine. G.interpolate can handle it
- position = G.interpolate(position, owned_by.global_position, delta * anim_speed)
- if player_owned: rotation.y = G.interpolate_angle(rotation.y, owned_by.global_rotation.y, delta * anim_speed)
- else: rotation.y = G.interpolate_angle_closest_quarter(rotation.y, owned_by.global_rotation.y, delta * anim_speed)
+ position = G.interpolate(position, position_target, delta * anim_speed)
+ rotation.y = G.interpolate_angle(rotation.y, rotation_target, delta * anim_speed)
if creation_timer != null:
creation_timer += delta * 10.0
- if creation_timer > 1:
+ if creation_timer > 1:
scale = Vector3.ONE
creation_timer = null
else: scale = Vector3.ONE * creation_timer