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 /client/menu | |
| parent | c94ece5f5071d4d9fec46daa59db008aa3f6cf32 (diff) | |
| download | hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar.bz2 hurrycurry-5b4ae38227ab59f1c35008b09604f25d5386d05a.tar.zst | |
fix scene trans getting stuck in black
Diffstat (limited to 'client/menu')
| -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") | 
