aboutsummaryrefslogtreecommitdiff
path: root/client/map/items
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-09-16 13:40:31 +0200
committermetamuffin <metamuffin@disroot.org>2024-09-16 13:42:21 +0200
commitfa199ee0a597ab7b94e866f2f160c29c671b83f7 (patch)
tree5f2a8666befcda433d5137127c61213a4531fc7b /client/map/items
parent83a98dd32ca3f7955d12285e653b512c8818ccbc (diff)
downloadhurrycurry-fa199ee0a597ab7b94e866f2f160c29c671b83f7.tar
hurrycurry-fa199ee0a597ab7b94e866f2f160c29c671b83f7.tar.bz2
hurrycurry-fa199ee0a597ab7b94e866f2f160c29c671b83f7.tar.zst
add item animations on removal
Diffstat (limited to 'client/map/items')
-rw-r--r--client/map/items/item.gd13
1 files changed, 13 insertions, 0 deletions
diff --git a/client/map/items/item.gd b/client/map/items/item.gd
index d24cd36b..710d0081 100644
--- a/client/map/items/item.gd
+++ b/client/map/items/item.gd
@@ -26,6 +26,8 @@ var take_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate
var put_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate()
var sound_id
+var destroy_timeout = null
+
func _init(owned_by_: Node3D):
progress_instance.position.y = 1
progress_instance.visible = false
@@ -42,6 +44,7 @@ func _init(owned_by_: Node3D):
owned_by = owned_by_
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 p = owned_by.get_parent().get_parent() is Player
@@ -49,6 +52,13 @@ func _process(delta):
position = G.interpolate(position, owned_by.global_position, delta * ispeed)
if p: rotation.y = G.interpolate_angle(rotation.y, owned_by.global_rotation.y, delta * ispeed)
else: rotation.y = G.interpolate_angle_closest_quarter(rotation.y, owned_by.global_rotation.y, delta * ispeed)
+ if destroy_timeout != null:
+ if is_instance_valid(progress_instance):
+ progress_instance.queue_free()
+ destroy_timeout -= delta * 5.
+ scale = Vector3.ONE * destroy_timeout
+ if destroy_timeout <= 0:
+ queue_free()
func progress(position_: float, speed: float, warn: bool):
progress_instance.visible = true
@@ -65,6 +75,9 @@ func setup_sounds():
take_sound.setup([preload("res://map/items/sounds/generic_take.ogg")])
put_sound.setup([preload("res://map/items/sounds/plate_put.ogg")])
+func remove():
+ destroy_timeout = 1
+
func take():
take_sound.play_random()