コード例 #1
0
ファイル: AffectorWindow.cs プロジェクト: brucelevis/xygine
        private void AffectorWindow_FormClosing(object sender, FormClosingEventArgs e)
        {
            switch (m_type)
            {
            case AffectorType.Colour:
                SFML.Graphics.Color start = new SFML.Graphics.Color();
                start.R = panelColourStart.BackColor.R;
                start.G = panelColourStart.BackColor.G;
                start.B = panelColourStart.BackColor.B;

                SFML.Graphics.Color end = new SFML.Graphics.Color();
                end.R = panelColourEnd.BackColor.R;
                end.G = panelColourEnd.BackColor.G;
                end.B = panelColourEnd.BackColor.B;

                Affector = new ColourAffector(start, end, (float)numericUpDownColour.Value);
                break;

            case AffectorType.Force:
                Affector = new ForceAffector(new SFML.Window.Vector2f((float)numericUpDownForceX.Value, (float)numericUpDownForceY.Value));
                break;

            case AffectorType.Rotation:
                Affector = new RotationAffector((float)numericUpDownRotation.Value);
                break;

            case AffectorType.Scale:
                Affector = new ScaleAffector(new SFML.Window.Vector2f((float)numericUpDownScaleX.Value, (float)numericUpDownScaleY.Value));
                break;

            case AffectorType.Velocity:
                Affector = new VelocityAffector(new SFML.Window.Vector2f((float)numericUpDownVelX.Value, (float)numericUpDownVelY.Value));
                break;
            }
        }
コード例 #2
0
        protected WorkflowGrain(Func <WorkflowIdentity, Activity> workflowDefinitionFactory, WorkflowIdentity workflowDefinitionIdentity)
        {
            // TODO
            // it's not possible to force at compile time that the WorkflowGrain implementation should implement TEffector
            // it would be great to check all the WorkflowGrain implementations at assembly load time (Orleans bootstrap? DI? module initilizer .cctor?)
            // AffectorProxy<> and EffectorProxy<> cctor also executes checks on TAffector and TEffector method signatures, but called only at first usage and not load time
            // Fody/ModuleInit: https://github.com/fody/moduleinit
            // Module Initializer: http://einaregilsson.com/module-initializers-in-csharp/

            if (!(this is TEffector))
            {
                throw new InvalidProgramException($"Type '{GetType().GetFriendlyName()}' must explicitly implement interface '{typeof(TEffector).GetFriendlyName()}'!");
            }

            workflowHost         = new WorkflowHost(new WorkflowGrainEffector(this), workflowDefinitionFactory, workflowDefinitionIdentity);
            workflowHostAffector = AffectorProxy <TAffector> .CreateProxy(workflowHost);
        }
コード例 #3
0
ファイル: ParticleSystem.cs プロジェクト: fallahn/xygine
 public void addAffector(IAffector affector)
 {
     m_affectors.Add(affector);
 }
コード例 #4
0
ファイル: AffectorWindow.cs プロジェクト: fallahn/xygine
        private void AffectorWindow_FormClosing(object sender, FormClosingEventArgs e)
        {
            switch (m_type)
            {
                case AffectorType.Colour:
                    SFML.Graphics.Color start = new SFML.Graphics.Color();
                    start.R = panelColourStart.BackColor.R;
                    start.G = panelColourStart.BackColor.G;
                    start.B = panelColourStart.BackColor.B;

                    SFML.Graphics.Color end = new SFML.Graphics.Color();
                    end.R = panelColourEnd.BackColor.R;
                    end.G = panelColourEnd.BackColor.G;
                    end.B = panelColourEnd.BackColor.B;

                    Affector = new ColourAffector(start, end, (float)numericUpDownColour.Value);
                    break;
                case AffectorType.Force:
                    Affector = new ForceAffector(new SFML.Window.Vector2f((float)numericUpDownForceX.Value, (float)numericUpDownForceY.Value));
                    break;
                case AffectorType.Rotation:
                    Affector = new RotationAffector((float)numericUpDownRotation.Value);
                    break;
                case AffectorType.Scale:
                    Affector = new ScaleAffector(new SFML.Window.Vector2f((float)numericUpDownScaleX.Value, (float)numericUpDownScaleY.Value));
                    break;
                case AffectorType.Velocity:
                    Affector = new VelocityAffector(new SFML.Window.Vector2f((float)numericUpDownVelX.Value, (float)numericUpDownVelY.Value));
                    break;
            }
        }
コード例 #5
0
 public void addAffector(IAffector affector)
 {
     m_affectors.Add(affector);
 }
コード例 #6
0
 public static void BindTo(this IAffectable target, IAffector affector)
 {
     target.BindAffectorPose = Matrix.Invert(affector.GlobalPose);
     target.Affector         = affector;
     affector.Affectable     = target;
 }
コード例 #7
0
 public static void UnBindFrom(this IAffectable target, IAffector affector)
 {
     target.BindAffectorPose = Matrix.Identity;
     target.Affector         = null;
     affector.Affectable     = null;
 }
コード例 #8
0
ファイル: AffectedMethod.cs プロジェクト: ruh-roh/ruh-roh
 void IAffectedMethod.AddTrigger(IAffector affector, ITrigger trigger)
 {
     affector.AddTrigger(trigger);
 }
コード例 #9
0
ファイル: AffectedMethod.cs プロジェクト: ruh-roh/ruh-roh
 IAffector IAffectedMethod.AddAffector(IAffector affector)
 {
     Affectors.Add(affector);
     return(affector);
 }