public IWizardPage Next() { string buildingName = textBoxName.Text; int buildingWidth = (int)numericUpDownWidth.Value; int buildingHeight = (int)numericUpDownHeight.Value; string outDir = textBoxOutputPath.Text; if (string.IsNullOrWhiteSpace(buildingName)) { throw new Exception("Building name must not be empty."); } if (buildingWidth < 1) { throw new Exception("Building width must not be less than 1."); } if (buildingHeight < 1) { throw new Exception("Building height must not be less than 1."); } if (string.IsNullOrWhiteSpace(outDir) || !Directory.Exists(outDir)) { throw new Exception("Output directory is not valid."); } string texFile = Path.Combine(outDir, $"{buildingName}_0.png"); string buildFile = Path.Combine(outDir, $"{buildingName}_build.bytes"); string animFile = Path.Combine(outDir, $"{buildingName}_anim.bytes"); try { AnimFactory.MakePlaceholderBuilding(buildingName, buildingWidth, buildingHeight, out Bitmap tex, out KBuild build, out KAnim anim); tex.Save(texFile, ImageFormat.Png); KAnimUtils.WriteBuild(buildFile, build); KAnimUtils.WriteAnim(animFile, anim); } catch (Exception ex) { throw new Exception("Failed to generate building data.", ex); } return(null); }
private void saveBuildFileToolStripMenuItem_Click(object sender, EventArgs e) { if (data.Build.NeedsRepack) { MessageBox.Show("The texture atlas needs to be rebuilt first."); // Repack return; } SaveFileDialog dlg = new SaveFileDialog(); if (dlg.ShowDialog() == DialogResult.OK) { if (KAnimUtils.WriteBuild(dlg.FileName, data.Build)) { MessageBox.Show(this, "Build file saved successfully.", "Save Success", MessageBoxButtons.OK); } else { MessageBox.Show(this, "Failed to save build file.", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public IWizardPage Next() { string name = textBoxName.Text; string inDir = textBoxInput.Text; string outDir = textBoxOutput.Text; if (string.IsNullOrWhiteSpace(name)) { throw new Exception("Name must not be empty."); } if (string.IsNullOrWhiteSpace(inDir) || !Directory.Exists(inDir)) { throw new Exception("Input path is invalid."); } if (string.IsNullOrWhiteSpace(outDir) || !Directory.Exists(outDir)) { throw new Exception("Output path is invalid."); } string texFile = Path.Combine(outDir, $"{name}_0.png"); string buildFile = Path.Combine(outDir, $"{name}_build.bytes"); string animFile = Path.Combine(outDir, $"{name}_anim.bytes"); try { AnimFactory.MakeSpritePack(name, inDir, out Bitmap tex, out KBuild build, out KAnim anim); tex.Save(texFile, ImageFormat.Png); KAnimUtils.WriteBuild(buildFile, build); KAnimUtils.WriteAnim(animFile, anim); } catch (Exception ex) { throw new Exception("Failed to pack sprites.", ex); } return(null); }