private void CutSave(object sender, EventArgs e) { ITileset tile = GetSelectedInputTileset(); if (saveFileDialog1.ShowDialog() != DialogResult.OK) { return; } btnSaveEachSprite.Enabled = false; (new Thread(() => { try { // FIXME: prevent stack overflow tile = tile.TilesetName() == Tileset.Tileset.Custom(0).Name ? Tileset.Tileset.Custom(byte.Parse(textCustomSize.Text)) : tile; TilesetConverterVertical tilecon = new TilesetConverterCustom(tile, SpriteMode.ALIGN_TOP_LEFT, false); tilecon.SaveEachSubimage(Image.FromFile(filepath), saveFileDialog1.FileName); MessageBox.Show(Vocab.GetText("done"), "Tilecon"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { UIThread(delegate { btnSaveEachSprite.Enabled = true; }); } })).Start(); }
private void CutSave(object sender, EventArgs e) { ITileset tile = GetTileset(); if (saveFileDialog1.ShowDialog() != DialogResult.OK) { return; } btnSaveEachSprite.Enabled = false; (new Thread(() => { try { int size = tile.TilesetName() == Maker.Custom.NAME ? Int32.Parse(textCustomSize.Text) : tile.SpriteSize(); TilesetConverterVertical tilecon = new TilesetConverterCustom(SpriteMode.ALIGN_TOP_LEFT, false, size); tilecon.SaveEachSubimage(Image.FromFile(filepath), saveFileDialog1.FileName); MessageBox.Show(Vocab.GetText("done"), "Tilecon"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { UIThread(delegate { btnSaveEachSprite.Enabled = true; }); } })).Start(); }