Beispiel #1
0
        public static IHasInput SetInputs(this IHasInput inputNode, params InputHook[] inputs)
        {
            if (inputNode.InputHooks != null)
            {
                throw new InvalidOperationException("Input has already been set!");
            }

            inputNode.InputHooks = inputs;
            (inputNode as Node).AddHooks(inputs);

            return(inputNode);
        }
Beispiel #2
0
 public static T Get <T>(this IHasInput node, string name)
 {
     return((T)GetInput(node, name).GetValue <T> ());
 }
Beispiel #3
0
 public static InputHook GetInput(this IHasInput node, string name)
 {
     return(FindHookByName(node.InputHooks, name) as InputHook);
 }
Beispiel #4
0
 public void Execute(IHasInput input, IHasOutput output)
 {
     InternalAction(input, output);
 }
Beispiel #5
0
 public void AddOutput(IHasInput child)
 {
     child.InputNode = this;
 }
        public virtual void SetAnimation()
        {
            IHasInput hasInput = _sprite as IHasInput;


            if (IsMeleeAttacking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["MeleeRight"]);
            }
            else if (IsMeleeAttacking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["MeleeLeft"]);
            }
            else if (IsRangedAttacking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["RangedRight"]);
            }
            else if (IsRangedAttacking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["RangedLeft"]);
            }
            else if (IsBlocking && _sprite.Mover.IsMovingRight)
            {
                AtlasPlayer.Play(_actions["BlockRight"]);
            }
            else if (IsBlocking && _sprite.Mover.IsMovingLeft)
            {
                AtlasPlayer.Play(_actions["BlockLeft"]);
            }
            else if (_sprite.Mover.Velocity.Y < 0)
            {
                AtlasPlayer.Play(_actions["Jump"]);
            }
            else if (_sprite.Mover.Velocity.X > 0 || _sprite.Mover.Velocity.X < 0)
            {
                if (_sprite.Mover.Velocity.Y < 0)
                {
                    AtlasPlayer.Play(_actions["Jump"]);
                }
                else if (_sprite.Mover.Velocity.X > 0)
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                }
                else
                {
                    AtlasPlayer.Play(_actions["WalkLeft"]);
                }
            }
            else if (_sprite.Mover.Velocity.X == 0 && _sprite.Mover.Velocity.Y == 0)
            {
                if (_sprite.Mover.IsMovingLeft && !_sprite.Mover.IsMovingRight)
                {
                    AtlasPlayer.Play(_actions["WalkLeft"]);
                    AtlasPlayer.Stop();
                }
                else if (!_sprite.Mover.IsMovingLeft && _sprite.Mover.IsMovingRight)
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                    AtlasPlayer.Stop();
                }
                else
                {
                    AtlasPlayer.Play(_actions["WalkRight"]);
                    AtlasPlayer.Stop();
                }
            }
        }