private void SavePresets() { FormPresets presets = new FormPresets(); // save assets location presets.AssetsLocation = tbFolderPath.Text; // save origin camera selection presets.OriginCamera = ((UnifyCamera)cbCameras.SelectedValue).Name; // save jump cameras Dictionary <string, ValuePair> jumpCameras = new Dictionary <string, ValuePair>(); for (int i = 0; i < lbCameras.Items.Count; i++) { UnifyCamera camera = lbCameras.Items[i] as UnifyCamera; if (lbCameras.GetItemChecked(i)) { jumpCameras.Add(camera.Name, new ValuePair(true, i)); } else { jumpCameras.Add(camera.Name, new ValuePair(false, i)); } } presets.JumpCameras = jumpCameras; // save mesh colliders Dictionary <string, bool> meshColliders = new Dictionary <string, bool>(); for (int i = 0; i < lbAllLayers.Items.Count; i++) { UnifyLayer layer = lbAllLayers.Items[i] as UnifyLayer; meshColliders.Add(layer.Name, false); } for (int i = 0; i < lbSelectedLayers.Items.Count; i++) { UnifyLayer layer = lbSelectedLayers.Items[i] as UnifyLayer; meshColliders.Add(layer.Name, true); } presets.MeshColliders = meshColliders; // save design options this.designOptions = new Dictionary <string, bool>(); SerializeTreeView(treeView1); presets.DesignOptions = this.designOptions; // write to project file string json = JsonConvert.SerializeObject(presets, Formatting.Indented); File.WriteAllText(this.SelectedProject, json); }
private void LoadPresets() { FormPresets presets = null; try { string json = File.ReadAllText(this.SelectedProject); presets = JsonConvert.DeserializeObject <FormPresets>(json); } catch { } if (presets != null) { if (presets.AssetsLocation != null) { // set project path and input data tbFolderPath.Text = presets.AssetsLocation; this.inputData.UnityProjectPath = presets.AssetsLocation; } if (presets.OriginCamera != null) { // set selected origin camera int index = cbCameras.FindStringExact(presets.OriginCamera); if (index != -1) { cbCameras.SelectedIndex = index; } } if (presets.JumpCameras != null) { // set jump cameras // modify source list order for (int i = 0; i < lbCameras.Items.Count; i++) { UnifyCamera cam = lbCameras.Items[i] as UnifyCamera; if (presets.JumpCameras.ContainsKey(cam.Name)) { this.inputData.Cameras.Remove(cam); this.inputData.Cameras.Insert(presets.JumpCameras[cam.Name].Index, cam); } } // re-set the list box bounding to re-set the order. ((ListBox)lbCameras).DataSource = null; ((ListBox)lbCameras).DataSource = this.inputData.Cameras; ((ListBox)lbCameras).DisplayMember = "Name"; // set check boxes foreach (KeyValuePair <string, ValuePair> item in presets.JumpCameras) { int index1 = lbCameras.FindStringExact(item.Key); if (index1 != -1) { lbCameras.SetItemCheckState(index1, item.Value.Checked == true ? CheckState.Checked : CheckState.Unchecked); } } } if (presets.MeshColliders != null) { // set nesh colliders foreach (KeyValuePair <string, bool> item in presets.MeshColliders) { int index2 = lbAllLayers.FindStringExact(item.Key); int index3 = lbSelectedLayers.FindStringExact(item.Key); if (index2 != -1 && item.Value == true) { lbSelectedLayers.Items.Add(lbAllLayers.Items[index2]); lbAllLayers.Items.RemoveAt(index2); } if (index3 != -1 && item.Value == false) { lbAllLayers.Items.Add(lbSelectedLayers.Items[index3]); lbSelectedLayers.Items.RemoveAt(index3); } } } this.checkedNodes = new List <UnifyLayer>(); if (presets.DesignOptions != null) { // set Design Options TreeNode nd = null; IEnumerable <TreeNode> treeViewFlat = treeView1.FlattenTree(); foreach (KeyValuePair <string, bool> item in presets.DesignOptions) { nd = treeViewFlat.Where(x => ((UnifyLayer)x.Tag).Name == item.Key).FirstOrDefault(); if (nd != null) { nd.Checked = item.Value; // if node is checked also add it to checked node list if (item.Value) { this.checkedNodes.Add((UnifyLayer)nd.Tag); } } } } } }