extends Node2D

class_name GameWorld

enum Map { RUNTIME, ODYSSEY }

export(Map) var mapToLoad = Map.RUNTIME

const runtimeRes = preload("res://Scenes/Maps/runtime.tscn")
const odysseyRes = preload("res://Scenes/Maps/odyssey.tscn")
const playerRes = preload("res://Actors/Player/Player.tscn")

var map = null
var player = null

func _ready():
	match mapToLoad:
		Map.RUNTIME:
			map = runtimeRes.instance()
		Map.ODYSSEY:
			map = odysseyRes.instance()
	add_child(map)
	player = playerRes.instance()
	player.is_controlled = true
	var spawnpoints = map.get_pois(POIData.POIType.SpawnPoint, POIData.POIClass.Player)
	if spawnpoints.size() > 0:
		player.transform.origin = (spawnpoints[0] as Node2D).transform.origin
	else:
		print("Map does not have Player spawnpoint POI! Spawning at origin (very bad)")
	$players.add_child(player)
	for tilemap in map.tilemaps:
		if tilemap is MapTiles:
			tilemap.set_occluder_origin(player)
