public void LoadContent(Vector2 tileDimensions, Vector2 mapDimensions) { if (Image.Path != String.Empty) { Image.LoadContent(); } Vector2 position = -tileDimensions; position.X += mapDimensions.X; // Save the dimensions of the layer LayerDimensions.Y = TMap.Row.Count; LayerDimensions.X = TMap.Row[0].Split('[').Length - 1; foreach (string row in TMap.Row) { // Get the tiles string[] split = row.Split(']'); position.X = -tileDimensions.X + mapDimensions.X;; position.Y += tileDimensions.Y; // Loop through all of the tiles and load their content from the tile sheet based on val1 and val2 foreach (string s in split) { if (s != String.Empty) { _state = "Passive"; position.X += tileDimensions.X; if (!s.Contains("x")) { // Create a new tile and add it to the list OrthogonalTile t = new OrthogonalTile(); string str = s.Replace("[", String.Empty); t.Value1 = int.Parse(str.Substring(0, str.IndexOf(':'))); t.Value2 = int.Parse(str.Substring(str.IndexOf(':') + 1)); if (SolidTiles.Contains("[" + t.Value1.ToString() + ":" + t.Value2.ToString() + "]")) { _state = "Solid"; } t.LoadContent(_state, position, new Rectangle(t.Value1 * (int)tileDimensions.X, t.Value2 * (int)tileDimensions.Y, (int)tileDimensions.X, (int)tileDimensions.Y)); if (OverlayTiles.Contains("[" + t.Value1.ToString() + ":" + t.Value2.ToString() + "]")) { _overlayTiles.Add(t); } else { _underlayTiles.Add(t); } } } } } }
/// <summary> /// Converts the tilemap into a two dimensional Tile array /// </summary> /// <returns>2D Tile array</returns> public OrthogonalTile[,] GetTileArray2D() { OrthogonalTile[,] data = new OrthogonalTile[(int)LayerDimensions.X, (int)LayerDimensions.Y]; int x = 0; int y = 0; foreach (OrthogonalTile t in _underlayTiles) { data[x, y] = t; x++; if (x > LayerDimensions.X - 1) { x = 0; y++; } } return(data); }