private static void ProcessChipsetConversion() { FileInfo inputFileInfo = new FileInfo(_commandLineOptions.InputPaths.First()); if (!inputFileInfo.Exists) { Console.WriteLine("Input file does not exists."); Environment.Exit(1); } RPGMaker2000ChipsetConverter converter = new RPGMaker2000ChipsetConverter(); RPGMakerXPTileset tileset = converter.ToRPGMakerXpTileset(inputFileInfo.FullName); tileset.SaveAll(Path.GetFileNameWithoutExtension(inputFileInfo.FullName), "."); }
/// <summary> /// Convert RPG Maker 2000 chipset to RPG Maker XP format. /// </summary> /// <param name="inputPath">The input path.</param> /// <returns></returns> public RPGMakerXPTileset ToRPGMakerXpTileset(string inputPath) { Bitmap chipsetBitmap = new Bitmap(inputPath); if (chipsetBitmap.Width != 480 || chipsetBitmap.Height != 256) { throw new Exception("Chipset out of proportions."); } RPGMakerXPTileset tileset = new RPGMakerXPTileset(); tileset.AutotileBitmaps.AddRange(ExtractWaterAutotiles(chipsetBitmap)); tileset.AutotileBitmaps.Add(ExtractDeepWaterAutotile(chipsetBitmap)); tileset.AutotileBitmaps.AddRange(ExtractAutotiles(chipsetBitmap)); tileset.AnimationBitmap = ExtractAnimationSheet(chipsetBitmap); tileset.TilesetBitmap = ExtractTileset(chipsetBitmap); chipsetBitmap.Dispose(); return(tileset); }
private void chipsetConvertButton_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(chipsetPathTextBox.Text) || String.IsNullOrEmpty(tilesetOutputDirectoryTextBox.Text)) { return; } if (!File.Exists(chipsetPathTextBox.Text) || !Directory.Exists(tilesetOutputDirectoryTextBox.Text)) { return; } FileInfo inputFileInfo = new FileInfo(chipsetPathTextBox.Text); RPGMaker2000ChipsetConverter converter = new RPGMaker2000ChipsetConverter(); RPGMakerXPTileset tileset = converter.ToRPGMakerXpTileset(chipsetPathTextBox.Text); tileset.SaveAll(Path.GetFileNameWithoutExtension(inputFileInfo.FullName), tilesetOutputDirectoryTextBox.Text); MessageBox.Show("Conversion successful!", "Conversion successful!", MessageBoxButtons.OK, MessageBoxIcon.Information); }