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.gd17
1 files changed, 10 insertions, 7 deletions
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
index bf7c60ed..d3e84e06 100644
--- a/client/map/items/item.gd
+++ b/client/map/items/item.gd
@@ -71,19 +71,22 @@ func animate_spawn():
scale = Vector3.ONE * 0.001 # setting to zero breaks assertions somewhere in the engine
func _process(delta):
- if not is_instance_valid(owned_by): return
- if owned_by.get_parent() is Item or owned_by is Item: return
- 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, position_target, delta * anim_speed)
- rotation.y = G.interpolate_angle(rotation.y, rotation_target, delta * anim_speed)
+ # Update position
+ if is_instance_valid(owned_by):
+ if owned_by.get_parent() is Item or owned_by is Item: return
+ 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, position_target, delta * anim_speed)
+ rotation.y = G.interpolate_angle(rotation.y, rotation_target, delta * anim_speed)
+ # Fade in
if creation_timer != null:
creation_timer += delta * 10.0
if creation_timer > 1:
scale = Vector3.ONE
creation_timer = null
else: scale = Vector3.ONE * creation_timer
+ # Fade out
if destroy_timeout != null:
destroy_timeout -= delta * 5.0
if is_instance_valid(progress_instance): progress_instance.hide()