Exemple #1
0
        /// <summary>
        /// Handles the EmitterAdded event of the Interface.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ProjectMercury.EffectEditor.NewEmitterEventArgs"/> instance containing the event data.</param>
        public void Interface_EmitterAdded(object sender, NewEmitterEventArgs e)
        {
            Trace.WriteLine("Adding emitter...", "CORE");

            using (new TraceIndenter())
            {
                Trace.WriteLine("Using plugin: " + e.Plugin.Name);
            }

            try
            {
                Emitter emitter = e.Plugin.CreateDefaultInstance();

                emitter.Initialise(e.Budget, e.Term);

                emitter.ParticleTexture = this.DefaultParticleTexture;

                this.ParticleEffect.Add(emitter);

                e.AddedEmitter = emitter;

                e.Result = CoreOperationResult.OK;
            }
            catch (Exception error)
            {
                e.Result = new CoreOperationResult(error);
            }
        }
Exemple #2
0
        /// <summary>
        /// Handles the DropDownItemClicked event of the uxAddEmitterMenuItem control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Windows.Forms.ToolStripItemClickedEventArgs"/> instance containing the event data.</param>
        private void uxAddEmitterMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            try
            {
                using (NewEmitterDialog dialog = new NewEmitterDialog())
                {
                    if (dialog.ShowDialog() == DialogResult.OK)
                    {
                        IEmitterPlugin plugin = e.ClickedItem.Tag as IEmitterPlugin;

                        var args = new NewEmitterEventArgs(plugin, dialog.EmitterBudget, dialog.EmitterTerm);

                        this.OnEmitterAdded(args);

                        if (args.AddedEmitter != null)
                        {
                            Emitter emitter = args.AddedEmitter;

                            EmitterTreeNode node = new EmitterTreeNode(emitter);

                            this.uxEffectTree.Nodes[0].Nodes.Add(node);

                            node.EnsureVisible();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #3
0
        protected virtual void OnEmitterAdded(NewEmitterEventArgs e)
        {
            Trace.WriteLine("User requires adding an emitter...", "UI");

            using (new HourglassCursor())
            {
                var handler = Interlocked.CompareExchange(ref this.EmitterAdded, null, null);

                if (handler != null)
                {
                    handler.Invoke(this, e);
                }
            }

            this.AssertOperationOK(e.Result);
        }
Exemple #4
0
        /// <summary>
        /// Handles the DropDownItemClicked event of the uxAddEmitterMenuItem control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Windows.Forms.ToolStripItemClickedEventArgs"/> instance containing the event data.</param>
        private void uxAddEmitterMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            try
            {
                using (NewEmitterDialog dialog = new NewEmitterDialog())
                {
                    if (dialog.ShowDialog() == DialogResult.OK)
                    {
                        IEmitterPlugin plugin = e.ClickedItem.Tag as IEmitterPlugin;

                        var args = new NewEmitterEventArgs(plugin, dialog.EmitterBudget, dialog.EmitterTerm);

                        this.OnEmitterAdded(args);

                        if (args.AddedEmitter != null)
                        {
                            AbstractEmitter emitter = args.AddedEmitter;

                            EmitterTreeNode node = new EmitterTreeNode(emitter);

                            this.uxEffectTree.Nodes[0].Nodes.Add(node);

                            node.EnsureVisible();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #5
0
        protected virtual void OnEmitterAdded(NewEmitterEventArgs e)
        {
            Trace.WriteLine("User requires adding an emitter...", "UI");

            using (new HourglassCursor())
            {
                var handler = Interlocked.CompareExchange(ref this.EmitterAdded, null, null);

                if (handler != null)
                    handler.Invoke(this, e);
            }

            this.AssertOperationOK(e.Result);
        }
Exemple #6
0
        /// <summary>
        /// Handles the EmitterAdded event of the Interface.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ProjectMercury.EffectEditor.NewEmitterEventArgs"/> instance containing the event data.</param>
        public void Interface_EmitterAdded(Object sender, NewEmitterEventArgs e)
        {
            Trace.WriteLine("Adding emitter...", "CORE");

            using (new TraceIndenter())
            {
                Trace.WriteLine("Using plugin: " + e.Plugin.Name);
            }

            try
            {
                AbstractEmitter emitter = e.Plugin.ConstructInstance();

                emitter.Initialise(e.Budget, e.Term);

                emitter.Name = String.Format("Emitter {0}", ++this.NewEmitterIndex);

                emitter.ParticleTexture = this.DefaultParticleTexture;

                this.ParticleEffect.Emitters.Add(emitter);

                e.AddedEmitter = emitter;

                e.Result = CoreOperationResult.OK;
            }
            catch (Exception error)
            {
                e.Result = new CoreOperationResult(error);
            }
        }
 protected virtual void OnEmitterAdded(NewEmitterEventArgs e)
 {
     if (this.EmitterAdded != null)
         this.EmitterAdded(this, e);
 }
Exemple #8
0
        /// <summary>
        /// Handles the EmitterAdded event of the Interface.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ProjectMercury.EffectEditor.NewEmitterEventArgs"/> instance containing the event data.</param>
        public void Interface_EmitterAdded(object sender, NewEmitterEventArgs e)
        {
            Emitter emitter = e.Plugin.CreateDefaultInstance();

            emitter.Initialise(e.Budget, e.Term);

            emitter.ParticleTexture = this.DefaultParticleTexture;

            this.ParticleEffect.Add(emitter);

            e.AddedEmitter = emitter;
        }