36 lines
1023 B
GDScript
36 lines
1023 B
GDScript
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
|