diff options
Diffstat (limited to 'client')
| -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") | 
