36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
| extends Node
 | |
| 
 | |
| var player_free: bool = true
 | |
| var player: Player
 | |
| 
 | |
| @onready var animation_player: AnimationPlayer = $AnimationPlayer
 | |
| 
 | |
| enum Events { NONE, PUMPKIN_CARVE, OUTSIDE_NORMAL }
 | |
| var current_event: Events = Events.NONE
 | |
| 
 | |
| func transition_start() -> void:
 | |
| 	animation_player.play("transition")
 | |
| 
 | |
| func transition_end() -> void:
 | |
| 	animation_player.play_backwards("transition")
 | |
| 
 | |
| func run_event(event: Events, player_postion: Vector2 = Vector2.ZERO):
 | |
| 	current_event = event
 | |
| 	if player != null && player_postion != Vector2.ZERO:
 | |
| 		player.position = player_postion
 | |
| 	match event:
 | |
| 		Events.PUMPKIN_CARVE:
 | |
| 			player_free = false
 | |
| 			transition_scene_file("uid://ccfdsdgaon63m") # scenes/levels/home.tscn
 | |
| 			await get_tree().scene_changed
 | |
| 			await get_tree().create_timer(2).timeout
 | |
| 			var pumpkin_carve: Control = preload("res://scenes/menus/pumpkin_carve.tscn").instantiate()
 | |
| 			add_child(pumpkin_carve)
 | |
| 
 | |
| func transition_scene_file(scene: String) -> void:
 | |
| 	if !animation_player.is_playing():
 | |
| 		transition_start()
 | |
| 		get_tree().call_deferred("change_scene_to_file", scene)
 | |
| 		await get_tree().scene_changed
 | |
| 		transition_end()
 |