Cow_Life_Sim_RPG/LocationManager.gd

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")