61 lines
3.1 KiB
GDScript
61 lines
3.1 KiB
GDScript
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")
|
|
|