diff options
Diffstat (limited to 'client/map/items/item.gd')
| -rw-r--r-- | client/map/items/item.gd | 17 |
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() |