public void Save(string dir, bool random_uuid, bool save_image) { try { FsUtils.RecreateDirectory(dir); var json = new JObject() { ["name"] = Name, ["write_counter"] = WriteCounter, ["version"] = Version, ["mii_charinfo_file"] = MiiCharInfoFileName, ["first_write_date"] = FirstWriteDate.ToJSON(), ["last_write_date"] = LastWriteDate.ToJSON(), ["id"] = Id.ToJSON(), }; if (!random_uuid) { var uuid_array = new JArray(); foreach (var uuid_byte in Uuid) { uuid_array.Add(uuid_byte); } json["uuid"] = uuid_array; } FsUtils.SaveJSON(Path.Combine(dir, "amiibo.json"), json); FsUtils.CreateEmptyFile(Path.Combine(dir, "amiibo.flag")); if (save_image) { FsUtils.SaveFromURL(OriginalAmiibo.ImageURL, Path.Combine(dir, "amiibo.png")); } } catch (Exception ex) { ExceptionUtils.LogExceptionMessage(ex); } }
private void Button1_Click(object sender, EventArgs e) { try { string base_dir = null; if (!FtpSaveCheck.Checked) { // If we're saving normally and we're not using the last path, ask the user for the path base_dir = SelectDirectory(); if (base_dir == null) { // User cancelled return; } } if (!CreateAllCheck.Checked) { var cur_amiibo = CurrentSeriesAmiibos[AmiiboComboBox.SelectedIndex]; if (string.IsNullOrEmpty(AmiiboNameBox.Text)) { ShowErrorBox("No amiibo name was specified."); return; } bool use_name_as_dir = UseNameCheck.Checked; if (!use_name_as_dir && string.IsNullOrEmpty(DirectoryNameBox.Text)) { ShowErrorBox("No amiibo directory name was specified."); return; } string name = AmiiboNameBox.Text; string dir_name = name; if (!use_name_as_dir) { dir_name = DirectoryNameBox.Text; } CreateAmiibo(name, dir_name, base_dir, cur_amiibo); MessageBox.Show("The virtual amiibo was successfully created.", DialogCaption, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { var actual_base_dir = ""; AmiiboSeries = Amiibos.GetAmiiboSeries(); if (AmiiboSeries.Any()) { foreach (var series in AmiiboSeries) { base_dir = Path.Combine(actual_base_dir, series); FsUtils.RecreateDirectory(base_dir); CurrentSeriesAmiibos = Amiibos.GetAmiibosBySeries(series); if (CurrentSeriesAmiibos.Any()) { foreach (var amiibo in CurrentSeriesAmiibos) { CreateAmiibo(amiibo.AmiiboName, amiibo.AmiiboName, base_dir, amiibo); } } else { MessageBox.Show("Ey, no amiibos"); } } } else { MessageBox.Show("Ey, no series"); } MessageBox.Show("All virtual amiibos were successfully created.", DialogCaption, MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { ExceptionUtils.LogExceptionMessage(ex); } LastPathLabel.Visible = LastPathCheck.Visible = !string.IsNullOrEmpty(LastUsedPath); if (LastPathLabel.Visible) { LastPathLabel.Text = "Last path: " + LastUsedPath; } }