Exemplo n.º 1
0
        public void RefreshTreeView()
        {
            if (ProjectManager.Self.EmitterSaveList != null)
            {
                EmitterSaveList esl = ProjectManager.Self.EmitterSaveList;

                for (int i = 0; i < esl.emitters.Count; i++)
                {
                    EmitterSave es = esl[i];

                    if (GetTreeNode(es) == null)
                    {
                        CreateTreeNodeFor(es);
                    }
                }
            }

            // Check for removals
            for (int i = mTreeView.Nodes.Count - 1; i > -1; i--)
            {
                EmitterSave emitterSave = mTreeView.Nodes[i].Tag as EmitterSave;

                if (ProjectManager.Self.EmitterSaveList.emitters.Contains(emitterSave) == false)
                {
                    mTreeView.Nodes.RemoveAt(i);
                }
            }
        }
Exemplo n.º 2
0
        private void CreateTreeNodeFor(EmitterSave es)
        {
            TreeNode treeNode = new TreeNode(es.Name);

            treeNode.Tag = es;


            mTreeView.Nodes.Add(treeNode);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Handles updating old particle files that stored textures in
 /// the particle blueprint object. If the emitterSave has a
 /// texture but the emissionSettings does not, it will
 /// copy the texture from emitterSave to emissionSettings
 /// </summary>
 /// <param name="emitterSave">The emitter save to check.</param>
 private void TryUpdateEmitterTextures(EmitterSave emitterSave)
 {
     if (emitterSave != null &&
         emitterSave.ParticleBlueprint != null &&
         !string.IsNullOrEmpty(emitterSave.ParticleBlueprint.Texture) &&
         string.IsNullOrEmpty(emitterSave.EmissionSettings.Texture))
     {
         emitterSave.EmissionSettings.Texture = emitterSave.ParticleBlueprint.Texture;
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Duplicates the selected emitter
        /// </summary>
        private void duplicateToolStripMenuItem_Click(object sender, EventArgs e)
        {
            EmitterSave duplicate = FlatRedBall.IO.FileManager.CloneObject(ApplicationState.Self.SelectedEmitterSave);

            duplicate.Name += "_duplicate";
            ProjectManager.Self.EmitterSaveList.emitters.Add(duplicate);

            // Manually trigger state change event.
            EmitterStateChanged(sender, e);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Disposes of the currently displaying
        /// emitter and creates a new one from the supplied
        /// save object. Requires an absolute path so it knows where
        /// to load sprites and other paths from.
        /// </summary>
        /// <param name="emitterSave">The emitter save to inflate into an emitter runtime object.</param>
        /// <param name="absolutePath">The base path to use when loading sprite textures or other resources.</param>
        public void DisplayEmitter(EmitterSave emitterSave, string absolutePath)
        {
            if (previewEmitter != null)
            {
                SpriteManager.RemoveEmitter(previewEmitter);
            }

            FileManager.RelativeDirectory = absolutePath;
            previewEmitter = emitterSave.ToEmitter(ContentManagerName);
            SpriteManager.AddEmitter(previewEmitter);
        }
Exemplo n.º 6
0
        private TreeNode GetTreeNode(EmitterSave es)
        {
            foreach (TreeNode node in mTreeView.Nodes)
            {
                if (node.Tag == es)
                {
                    return(node);
                }
            }

            return(null);
        }
Exemplo n.º 7
0
        public void RefreshTreeViewFor(EmitterSave es)
        {
            var treeNode = GetTreeNode(es);

            if (treeNode != null)
            {
                if (treeNode.Text != es.Name)
                {
                    treeNode.Text = es.Name;
                }
            }
        }
Exemplo n.º 8
0
        internal TreeNode GetTreeNodeFor(EmitterSave value)
        {
            if (value == null)
            {
                return(null);
            }
            else
            {
                foreach (TreeNode treeNode in mTreeView.Nodes)
                {
                    if (treeNode.Tag == value)
                    {
                        return(treeNode);
                    }
                }

                // if we got here then there's no node:
                return(null);
            }
        }
        public void DeleteEmitterClick(object sender, EventArgs args)
        {
            if (ApplicationState.Self.SelectedEmitterSave != null)
            {
                DialogResult result =
                    MessageBox.Show("Delete Emitter " + ApplicationState.Self.SelectedEmitterSave.Name + "?",
                                    "Delete?", MessageBoxButtons.YesNo);

                if (result == DialogResult.Yes)
                {
                    EmitterSave emitterToRemove = ApplicationState.Self.SelectedEmitterSave;

                    ApplicationState.Self.SelectedEmitterSave = null;
                    ProjectManager.Self.EmitterSaveList.emitters.Remove(emitterToRemove);

                    TreeViewManager.Self.RefreshTreeView();

                    CallListAddOrRemove();
                }
            }
        }
        public void AddEmitterClick(object sender, EventArgs args)
        {
            TextInputWindow tiw = new TextInputWindow();

            tiw.DisplayText = "Enter new Emitter name";

            if (tiw.ShowDialog() == DialogResult.OK)
            {
                string result = tiw.Result;

                string whyIsntValid = GetWhyNameIsntValid(result);

                if (!string.IsNullOrEmpty(whyIsntValid))
                {
                    MessageBox.Show(whyIsntValid);
                }
                else
                {
                    EmitterSave emitterSave = new EmitterSave();
                    emitterSave.Name = result;

                    // let's set some useful defaults:
                    emitterSave.RemovalEvent   = nameof(Emitter.RemovalEventType.Timed);
                    emitterSave.SecondsLasting = 5;
                    emitterSave.EmissionSettings.RadialVelocity      = 20;
                    emitterSave.EmissionSettings.RadialVelocityRange = 20;
                    emitterSave.TimedEmission   = true;
                    emitterSave.SecondFrequency = .2f;

                    ProjectManager.Self.EmitterSaveList.emitters.Add(emitterSave);


                    TreeViewManager.Self.RefreshTreeView();
                    ApplicationState.Self.SelectedEmitterSave = emitterSave;

                    CallListAddOrRemove();
                }
            }
        }