extends Node signal location_changed enum Locations {Park, Arcade, JuiceCafe, Faire, MuseumArea, PigeonGrove, Tutorial, Pier, ElliePier, EllieBoat, HomeArea, PlayerHome, MarlowHome, BeachPathForest, Museum, MuseumCave, JonaldLairEntrance, JonaldLair, Beach, ParkBeachPath} var locationScenes = {} var currentLocationName var currentLocation func _ready(): initialize_location_scenes() func changeLocation(location, entranceNum:int): if currentLocation != null: currentLocation.queue_free() var newLocation = locationScenes[location].instantiate() get_tree().root.get_node("/root/MainGame").add_child(newLocation) currentLocation = newLocation currentLocationName = location GameVariables.player.global_position = currentLocation.entryLocations[entranceNum] GameVariables.player.movementTarget = GameVariables.player.global_position GameVariables.camera.position_smoothing_enabled = false GameVariables.camera.global_position = GameVariables.player.global_position location_changed.emit() await get_tree().create_timer(1).timeout GameVariables.camera.position_smoothing_enabled = true SaveManager.set_save_value("location", location) SaveManager.set_save_value("locationEntrance", entranceNum) func initialize_location_scenes(): locationScenes[Locations.Park] = load("res://Locations/Town/Park/Park.tscn") locationScenes[Locations.Arcade] = load("res://Locations/Town/Arcade/Arcade.tscn") locationScenes[Locations.JuiceCafe] = load("res://Locations/Town/JuiceCafe/JuiceCafe.tscn") locationScenes[Locations.Faire] = load("res://Locations/Faire/Faire.tscn") locationScenes[Locations.MuseumArea] = load("res://Locations/Town/MuseumArea/MuseumArea.tscn") locationScenes[Locations.PigeonGrove] = load("res://Locations/Forest/PigeonGrove/PigeonGrove.tscn") locationScenes[Locations.Tutorial] = load("res://Locations/TutorialBoat/BoatLayout.tscn") locationScenes[Locations.Pier] = load("res://Locations/Pier/Pier.tscn") locationScenes[Locations.ElliePier] = load("res://Locations/Pier/ElliePier.tscn") locationScenes[Locations.EllieBoat] = load("res://Locations/TutorialBoat/EllieBoat/EllieBoat.tscn") locationScenes[Locations.HomeArea] = load("res://Locations/Town/HomeArea/HomeArea.tscn") locationScenes[Locations.PlayerHome] = load("res://Locations/Town/HomeArea/PlayerHome/PlayerHome.tscn") locationScenes[Locations.MarlowHome] = load("res://Locations/Town/HomeArea/MarlowHome/MarlowHouse.tscn") locationScenes[Locations.BeachPathForest] = load("res://Locations/Forest/PathToBeach/PathToBeachForest.tscn") locationScenes[Locations.Museum] = load("res://Locations/Town/MuseumArea/Museum/Museum.tscn") locationScenes[Locations.MuseumCave] = load("res://Locations/Cave/MuseumCave.tscn") locationScenes[Locations.JonaldLairEntrance] = load("res://Locations/JonaldLair/Entrance/JonaldLairEntrance.tscn") locationScenes[Locations.JonaldLair] = load("res://Locations/JonaldLair/JonaldLair/JonaldLair.tscn") locationScenes[Locations.Beach] = load("res://Locations/Beach/Beach.tscn") locationScenes[Locations.ParkBeachPath] = load("res://Locations/ParkBeachPath/ParkBeachPath.tscn")