diff options
Diffstat (limited to 'client/menu/scene_transition.gd')
| -rw-r--r-- | client/menu/scene_transition.gd | 58 | 
1 files changed, 18 insertions, 40 deletions
| diff --git a/client/menu/scene_transition.gd b/client/menu/scene_transition.gd index f68f6aa7..8fe078e6 100644 --- a/client/menu/scene_transition.gd +++ b/client/menu/scene_transition.gd @@ -14,57 +14,35 @@  # along with this program.  If not, see <https://www.gnu.org/licenses/>.  #   class_name SceneTransition -extends ColorRect +extends Control -@onready var anim: AnimationPlayer = $animation -@export var ingame = false - -@export var auto_fade_in := true +@onready var anim: AnimationPlayer = $AnimationPlayer  var black = true  var fading = false +signal close() +  func _ready(): -	visible = true -	if auto_fade_in: fade_in() +	$ColorRect.visible = true  func fade_in(): -	if black: anim.play("fade_in"); fading = true -	black = false -	if fading: await anim.animation_finished -	fading = false +	if fading: push_error("transition busy (in)"); return +	if not black: push_error("already faded in"); return +	fading = true +	anim.play_backwards("fade") +	await anim.animation_finished  	self.mouse_filter = Control.MOUSE_FILTER_IGNORE +	fading = false; black = false  func fade_out(): +	if fading: push_error("transition busy (out)"); return +	if black: push_error("already faded out"); return +	fading = true  	self.mouse_filter = Control.MOUSE_FILTER_STOP -	if not black: anim.play("fade_out"); fading = true -	black = true -	if fading: await anim.animation_finished -	fading = false - -func transition_to(path: String): -	await out() -	get_tree().change_scene_to_file(path) - -func instant_to(path: String): -	get_tree().change_scene_to_file(path) - -func quit(): -	await out() -	get_tree().quit() - -func out(): -	visible = true -	if menu.visible: -		menu.anim.play_backwards("activate") -		await menu.anim.animation_finished -	anim.play("fade_out") +	anim.play("fade")  	await anim.animation_finished +	fading = false; black = true -@onready var menu = $IngameMenu -func _process(_delta): -	if ingame: -		if not menu.visible and Input.is_action_just_pressed("pause"): -			menu.act() -		elif menu.visible and Input.is_action_just_pressed("pause"): -			menu.deact() +func _exit_tree(): +	if fading: push_error("SceneTransition destroyed while fading") | 
