class_name OverworldSingleton extends Node signal mapChanged(newMap:PackedScene, playerDestinationNodeName:String) var newMap:PackedScene var playerDestinationNodeName:String func _init() -> void: pass func _exit_tree() -> void: TRANSITION.fadeOutEnd.disconnect(onFadeOutEnd) TRANSITION.fadeInEnd.disconnect(onFadeInEnd) func mapChange(map:PackedScene, playerDestinationNodeName:String) -> void: TRANSITION.fade(TransitionSingleton.FadeType.FADE_OUT) TRANSITION.fadeOutEnd.connect(onFadeOutEnd) newMap = map self.playerDestinationNodeName = playerDestinationNodeName func onFadeOutEnd() -> void: TRANSITION.fadeOutEnd.disconnect(onFadeOutEnd) TRANSITION.fade(TransitionSingleton.FadeType.FADE_IN) TRANSITION.fadeInEnd.connect(onFadeInEnd) mapChanged.emit(newMap, playerDestinationNodeName) func onFadeInEnd() -> void: TRANSITION.fadeInEnd.disconnect(onFadeInEnd) newMap = null func isMapChanging() -> bool: # If the newMap is set, then we are in the process of changing maps. return newMap != null