public void Dig(int x, int z) { if (!LevelHelpers.TileIsInBounds(Model, x, z)) { return; } LevelTile tile = Model.Tiles[x, z]; if (tile.Opened) { return; } tile.Opened = true; UpdateTileDigMarker(tile); List <LevelTile> surroundingTiles = LevelHelpers.GetSurroundingTiles(Model, x, z); foreach (LevelTile t in surroundingTiles) { Model.EvaluateTile(t.X, t.Z); UpdateObjectsForTile(t); } Model.UpdateContiguousTilesFrom(x, z); UpdateCeilingMask(); }