public static void SaveProject() { if (JetProps.get().Count <= 0) { return; } if (project == null) { project = new ProjectClass.ProjectFile(); } project.ProjectName = CurrentProjectVariables.ProjectName; project.PathToProjectFiles = CurrentProjectVariables.PathToProjectFiles; project.PathToProjectClassFile = CurrentProjectVariables.PathToProjectClassFile; project.GameName = CurrentProjectVariables.GameName; project.GamePath = CurrentProjectVariables.GamePath; project.GameVersion = CurrentProjectVariables.GameVersion; project.JetPassword = CurrentProjectVariables.JetPassword; project.ExportPath = CurrentProjectVariables.ExportPath; project.DateLastOpened = CurrentProjectVariables.DateLastOpened; project.JsonEditor_OpenedTabs = CurrentProjectVariables.JsonEditor_OpenedTabs; project.ModifiedFiles = CurrentProjectVariables.ModifiedFiles; project.UseNKHook = false; project.DontAskAboutNKH = false; project.UseNKHook = CurrentProjectVariables.UseNKHook; project.DontAskAboutNKH = CurrentProjectVariables.DontAskAboutNKH; string output_Cfg = JsonConvert.SerializeObject(project, Formatting.Indented); if (JetProps.get().Count <= 0) { return; } if (!Guard.IsStringValid(project.PathToProjectClassFile) || !Directory.Exists(project.PathToProjectClassFile)) { ConsoleHandler.force_append_Notice_CanRepeat("WARNING!!!!! Unable to find the .toolbox file for this project! " + "Failed to save project data. This can easily make toolbox not work properly. Please contact Toolbox" + " Devs if this continues"); return; } StreamWriter serialize = new StreamWriter(project.PathToProjectClassFile + "\\" + project.ProjectName + ".toolbox", false); serialize.Write(output_Cfg); serialize.Close(); }
private void AddWeapons() { ConsoleHandler.append("Adding WeaponDefinitions"); string weaponDefinitions = CurrentProjectVariables.PathToProjectFiles + "\\Assets\\JSON\\WeaponDefinitions\\" + TowerName; if (Directory.Exists(weaponDefinitions)) { Directory.Delete(weaponDefinitions, true); } string baseTowerWeaponDef = CurrentProjectVariables.PathToProjectFiles + "\\Assets\\JSON\\WeaponDefinitions\\" + BaseTowerName_NoExt; if (UseBaseTower) { if (Directory.Exists(baseTowerWeaponDef)) { if (!Directory.Exists(weaponDefinitions)) { Directory.CreateDirectory(weaponDefinitions); } ConsoleHandler.append("Duplicating Base Tower's WeaponDefinitions"); GeneralMethods.CopyDirectory(baseTowerWeaponDef, weaponDefinitions); } else { ConsoleHandler.append("Base Tower's WeaponDefinitions were not found. Creating empty weapon definitions"); } } else { ConsoleHandler.append("Creating new WeaponDefinitions"); Directory.CreateDirectory(weaponDefinitions); } foreach (var jetform in JetProps.get()) { if (jetform.dirInfo.FullName == CurrentProjectVariables.PathToProjectFiles) { ConsoleHandler.append(jetform.dirInfo.FullName); jetform.treeView1.Nodes.Clear(); jetform.listView1.Items.Clear(); jetform.PopulateTreeView(CurrentProjectVariables.PathToProjectFiles); } } }
public static bool IsProjectVald(string projFile) { string json = File.ReadAllText(projFile); bool isValid = JSON_Reader.IsValidJson(json); if (!isValid) { json = json.Replace("\\\\", "\\").Replace("\\", "\\\\"); isValid = JSON_Reader.IsValidJson(json); if (!isValid) { if (JetProps.get().Count() > 0) { MessageBox.Show("Project File has invalid JSON. Please contact BTD Toolbox devs for assistance. Click \"Help\" at the top, then click \"Contact Us\""); try { JetProps.getForm(JetProps.get().Count() - 1).Close(); } catch (System.InvalidOperationException) { } } return(false); } } return(true); }