diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-19 18:16:46 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-19 18:16:46 +0200 |
commit | 5b4ae38227ab59f1c35008b09604f25d5386d05a (patch) | |
tree | 059bc392dde37b62bed9b70413467b527a41ddcc | |
parent | c94ece5f5071d4d9fec46daa59db008aa3f6cf32 (diff) | |
download | hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar.bz2 hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar.zst |
fix scene trans getting stuck in black
-rw-r--r-- | client/menu/scene_transition.gd | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/client/menu/scene_transition.gd b/client/menu/scene_transition.gd index 9b6b1cac..b30897aa 100644 --- a/client/menu/scene_transition.gd +++ b/client/menu/scene_transition.gd @@ -22,26 +22,34 @@ extends Control var black = true var fading = false +var queue = [] + func _ready(): $ColorRect.visible = true -func fade_in(): - if fading: await anim.animation_finished - if not black: push_error("already faded in"); return +func next(): + if fading: return + if queue.is_empty(): return fading = true - anim.play_backwards("fade") - await anim.animation_finished - self.mouse_filter = Control.MOUSE_FILTER_IGNORE - fading = false; black = false + if queue.pop_front(): + anim.play_backwards("fade") + await anim.animation_finished + self.mouse_filter = Control.MOUSE_FILTER_IGNORE + black = false + else: + self.mouse_filter = Control.MOUSE_FILTER_STOP + anim.play("fade") + await anim.animation_finished + black = false + fading = false + await next() +func fade_in(): + queue.push_back(true) + await next() func fade_out(): - if fading: await anim.animation_finished - if black: push_error("already faded out"); return - fading = true - self.mouse_filter = Control.MOUSE_FILTER_STOP - anim.play("fade") - await anim.animation_finished - fading = false; black = true + queue.push_back(false) + await next() func _exit_tree(): if fading: push_error("SceneTransition destroyed while fading") |