public void initWorldConfig(ContentManager content, String actorConfigFile)
        {
            var doc = XDocument.Load(actorConfigFile);
            var worlds = doc.Element("Worlds").Elements("World");

            String worldName;
            Texture2D texture;
            int width;
            int height;
            int tileSize;

            foreach (XElement world in worlds)
            {
                worldName = world.Attribute("worldName").Value;
                texture = content.Load<Texture2D>(world.Attribute("worldTexture").Value);
                width = int.Parse(world.Attribute("width").Value);
                height = int.Parse(world.Attribute("height").Value);
                tileSize = int.Parse(world.Attribute("tileSize").Value);
                worldPrototypes[worldName] = new WorldConfig(worldName, texture, width, height, tileSize);
            }
        }
 //Generates an World object with the given bounds using constraints outlined
 //at the top of the class.
 //Returns an array of enumerated tiles.
 public World generateWorld(WorldConfig worldConfig, int numEnemies)
 {
     World world = generateWorld(worldConfig.texture, worldConfig.enemyClasses, worldConfig.width, worldConfig.height, worldConfig.tileSize, numEnemies);
     world.themeMusic = worldConfig.music;
     return world;
 }
        public void initWorldConfig(ContentManager content, String actorConfigFile)
        {
            XDocument doc = XDocument.Load(actorConfigFile);
            List<XElement> worlds = doc.Element("Worlds").Elements("World").ToList();
            List<XElement> enemies;

            String worldName;
            List<String> enemyClasses;
            Texture2D texture;
            int width;
            int height;
            int tileSize;

            foreach (XElement world in worlds)
            {
                worldName = world.Attribute("worldName").Value;
                enemies = world.Elements("Enemy").ToList();
                texture = content.Load<Texture2D>(world.Attribute("worldTexture").Value);
                width = int.Parse(world.Attribute("width").Value);
                height = int.Parse(world.Attribute("height").Value);
                tileSize = int.Parse(world.Attribute("tileSize").Value);
                enemyClasses = new List<String>();
                foreach (XElement enemy in enemies)
                {
                    enemyClasses.Add(enemy.Attribute("class").Value);
                }
                worldPrototypes[worldName] = new WorldConfig(worldName, enemyClasses, texture, width, height, tileSize);
                worldPrototypes[worldName].music = world.Attribute("themeMusic").Value;
            }
        }
        //public World loadFromCustom(int[,] tileMap, bool[,] collisionMap)
        //{
        //    Point playerSpawnPos = new Point(1, 1);
        //    return this.loadFromCustom(worldPrototypes["tundra"], tileMap, collisionMap, playerSpawnPos);
        //}

        //public World loadFromCustom(WorldConfig worldConfig, int[,] tileMap, bool[,] collisionMap, Point playerSpawnPos)
        //{
        //    return this.loadFromCustom(worldConfig.texture, worldConfig.tileSize, tileMap, collisionMap, playerSpawnPos);
        //}

        //public World loadFromCustom(Texture2D tile, int tileSize, int[,] tileMap, bool[,] collisionMap, Point playerSpawnPos)
        //{
        //    List<String> enemyTypeList = new List<String>();
        //    List<Point> enemySpawnPosList = new List<Point>();
        //    return this.loadFromCustom(tile, tileSize, tileMap, collisionMap, playerSpawnPos, enemyTypeList, enemySpawnPosList);
        //}

        public World loadFromCustom(WorldConfig worldConfig, int[,] tileMap, bool[,] collisionMap, Point playerSpawnPos, List<String> enemyTypeList, List<Point> enemySpawnPosList)
        {
            return this.loadFromCustom(worldConfig.texture, worldConfig.tileSize, tileMap, collisionMap, playerSpawnPos, enemyTypeList, enemySpawnPosList);
        }
        //Generates an World object with the given bounds using constraints outlined
        //at the top of the class.
        //Returns an array of enumerated tiles.

        public World generateWorld(WorldConfig worldConfig, int numEnemies)
        {
            return generateWorld(worldConfig.texture, worldConfig.width, worldConfig.height, worldConfig.tileSize, numEnemies);
        }
 //Generates an World object with the given bounds using constraints outlined
 //at the top of the class.
 //Returns an array of enumerated tiles.
 public World generateWorld(WorldConfig worldConfig, int difficulty)
 {
     World world = generateWorld(worldConfig.texture, worldConfig.enemyConfigs, worldConfig.tileSize, difficulty);
     world.themeMusic = worldConfig.music;
     world.worldConfig = worldConfig;
     return world;
 }