public void LoadContent(Vector2 tileDimensions) { Image.LoadContent(); Vector2 position = -tileDimensions; foreach (string row in Map.Row) { string[] split = row.Split(']'); position.X = -tileDimensions.X; position.Y += tileDimensions.Y; foreach (string s in split) { if (s != String.Empty) { position.X += tileDimensions.X; if (!s.Contains("---")) { _state = "Passive"; Tile tile = new Tile(); string str = s.Replace("[", String.Empty); int value1 = int.Parse(str.Substring(0, str.IndexOf(':'))); int value2 = int.Parse(str.Substring(str.IndexOf(':') + 1)); if (SolidTiles.Contains(s)) { _state = "Solid"; } int chanse = 0; if (s.Contains("1:")) chanse = 10; tile.LoadContent(position, new Rectangle( value1 * (int)tileDimensions.X, value2 * (int)tileDimensions.Y, (int)tileDimensions.X, (int)tileDimensions.Y), _state, OnDestroy, chanse); if (OverlayTiles.Contains(s)) _overlayTiles.Add(tile); else _underlayTiles.Add(tile); } } } } }
private void OnDestroy(Tile tile) { tile.UnloadContent(); _underlayTiles.Remove(tile); _overlayTiles.Remove(tile); }