Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                            }
                        }
                    }
                }
            }
        }