class_name OverworldScene extends Node

@export var map:Node3D = null

func _enter_tree() -> void:
  OVERWORLD.mapChanged.connect(onMapChanged)

func _ready() -> void:
  pass

func _exit_tree() -> void:
  OVERWORLD.mapChanged.disconnect(onMapChanged)

func onMapChanged(newMap:PackedScene, _playerDestinationNodeName:String) -> void:
  print("New map time.", newMap)
  for childScene in map.get_children():
    map.remove_child(childScene)

  if !newMap:
    return
    
  var newMapInstance = newMap.instantiate()
  map.add_child(newMapInstance)

  # Find Player.
  # if playerDestinationNodeName:
  #   var player = newMapInstance.get_node("Player")
  #   var destNode = newMapInstance.get_node(playerDestinationNodeName)
  #   if player && player is Player && destNode:
  #     player.global_position = destNode.global_position
  #     player.global_rotation.y = destNode.global_rotation.y
  #   elif playerDestinationNodeName:
  #     push_error("Player, or destination node not found in new map.")
  #   pass
