Esempio n. 1
0
    public override void _Input(Godot.InputEvent @event)
    {
        if (@event is InputEventMouseButton || @event is InputEventKey)
        {
            InputCallbackEvent icei = new InputCallbackEvent();
            if (@event.IsActionPressed("LeftMouseButton"))
            {
                icei.lmbClickPressed = true;
            }
            if (@event.IsActionReleased("LeftMouseButton"))
            {
                icei.lmbClickRelease = true;
            }
            if (@event.IsActionPressed("RightMouseButton"))
            {
                icei.rmbClickPressed = true;
            }

            /*
             * if (@event.IsActionReleased("RightMouseButton")) icei.rmbClickRelease = true;
             * if (@event.IsActionPressed("MoveUp")) icei.upPressed = true;
             * if (@event.IsActionReleased("MoveUp")) icei.upRelease = true;
             * if (@event.IsActionPressed("MoveDown")) icei.downPressed = true;
             * if (@event.IsActionReleased("MoveDown")) icei.downRelease = true;
             * if (@event.IsActionPressed("MoveLeft")) icei.leftPressed = true;
             * if (@event.IsActionReleased("MoveLeft")) icei.leftRelease = true;
             * if (@event.IsActionPressed("MoveRight")) icei.rightPressed = true;
             * if (@event.IsActionReleased("MoveRight")) icei.rightRelease = true;
             */
            icei.FireEvent();
        }
    }
        // Override that converts and distributes the input events
        //   to the more sane methods above.
        public override void Input(Godot.InputEvent inputEvent)
        {
            switch (inputEvent)
            {
            case Godot.InputEventKey keyEvent:
                var keyEventArgs = (KeyEventArgs)keyEvent;
                if (keyEvent.Echo)
                {
                    return;
                }
                else if (keyEvent.Pressed)
                {
                    KeyDown(keyEventArgs);
                }
                else
                {
                    KeyUp(keyEventArgs);
                }
                break;

            case Godot.InputEventMouseButton mouseButtonEvent:
                if (mouseButtonEvent.ButtonIndex >= (int)Godot.ButtonList.WheelUp && mouseButtonEvent.ButtonIndex <= (int)Godot.ButtonList.WheelRight)
                {
                    // Mouse wheel event.
                    var mouseWheelEventArgs = (MouseWheelEventArgs)mouseButtonEvent;
                    MouseWheel(mouseWheelEventArgs);
                }
                else
                {
                    // Mouse button event.
                    var mouseButtonEventArgs = (MouseButtonEventArgs)mouseButtonEvent;
                    if (mouseButtonEvent.Pressed)
                    {
                        MouseDown(mouseButtonEventArgs);
                        if (!mouseButtonEventArgs.Handled)
                        {
                            KeyDown((KeyEventArgs)mouseButtonEvent);
                        }
                    }
                    else
                    {
                        MouseUp(mouseButtonEventArgs);
                        if (!mouseButtonEventArgs.Handled)
                        {
                            KeyUp((KeyEventArgs)mouseButtonEvent);
                        }
                    }
                }
                break;

            case Godot.InputEventMouseMotion mouseMotionEvent:
                var mouseMoveEventArgs = (MouseMoveEventArgs)mouseMotionEvent;
                MouseMove(mouseMoveEventArgs);
                break;
            }
        }
Esempio n. 3
0
    public override void _Input(Godot.InputEvent evt)
    {
        InputEventMouseMotion mot = evt as InputEventMouseMotion;

        if (mot != null)
        {
            mousePosition = mot.GlobalPosition;
            mouseMovement = mot.Relative;
        }
    }
Esempio n. 4
0
 public override void _InputEvent(Godot.Object viewport, Godot.InputEvent @event, int shapeIdx)
 {
     if (Input.IsActionPressed("click"))
     {
         if (!movingPlatform)
         {
             movePlatform = !movePlatform;
         }
     }
 }
Esempio n. 5
0
    public override void _UnhandledInput(Godot.InputEvent @event)
    {
        //If there was a touch screen event
        if (@event is InputEventScreenTouch screenTouch)
        {
            //If the screenTouch was pressed
            if (screenTouch.Pressed)
            {
                if (screenTouch.Index > 1)
                {
                    //CALL THE DREADED PINCH EVEN TO ZOOM THE SCREEN!!!!!
                }
                else
                {
                }

                /*
                 *
                 */
            }
            else
            {
                //If the touch is released we bring up the build menu
                //BRING ME THE TOUCH MENU PEASANTS 28/02/2021 - Auther: IndieRonin
                //Enadble the touchRay
                touchRay.Enabled = true;
                //Set its current position to the taps position
                touchRay.Position = screenTouch.Position;
                //Forces the raycast to update and detect the collision with the building object
                touchRay.ForceRaycastUpdate();
                //Check if there is a collision from the touch array
                if (touchRay.IsColliding())
                {
                    //Get the node that the ray collided with
                    Node2D hitNode = touchRay.GetCollider() as Node2D;
                    //Get the position where the screen was touched
                    touchStart = screenTouch.Position;
                    if (hitNode.IsInGroup("Room"))
                    {
                        GD.Print("A room was released on - that sounds dirty");
                    }
                }

                //Get the position where the screen touch was released
                touchEnd = screenTouch.Position;
                //Where the touch was released used for dragging or to check if and object with a collider on was clicked on
            }
        }
    }
 public override void PreInput(Godot.InputEvent inputEvent)
 {
     if (inputEvent is Godot.InputEventKey keyEvent)
     {
         var keyEventArgs = (KeyEventArgs)keyEvent;
         if (keyEvent.Echo)
         {
             return;
         }
         else if (keyEvent.Pressed)
         {
             // TODO: these hacks are in right now for toggling the debug console.
             // Somehow find a way to make the console use the key binds system?
             _userInterfaceManager.GDPreKeyDown(keyEventArgs);
         }
         else
         {
             _userInterfaceManager.GDPreKeyUp(keyEventArgs);
         }
     }
 }
Esempio n. 7
0
    public override void _Input(Godot.InputEvent @event)
    {
        if (@event is InputEventMouseButton || @event is InputEventKey)
        {
            icei = new InputCallbackEvent();
            if (@event.IsActionPressed("LeftClick"))
            {
                icei.lmbClickPressed = true;
            }
            if (@event.IsActionReleased("LeftClick"))
            {
                icei.lmbClickRelease = true;
            }
            if (@event.IsActionPressed("RightClick"))
            {
                icei.rmbClickPressed = true;
            }
            if (@event.IsActionReleased("RightClick"))
            {
                icei.rmbClickRelease = true;
            }
            if (@event.IsActionPressed("MoveUp"))
            {
                icei.upPressed = true;
            }
            if (@event.IsActionReleased("MoveUp"))
            {
                icei.upRelease = true;
            }
            if (@event.IsActionPressed("MoveDown"))
            {
                icei.downPressed = true;
            }
            if (@event.IsActionReleased("MoveDown"))
            {
                icei.downRelease = true;
            }
            if (@event.IsActionPressed("MoveLeft"))
            {
                icei.leftPressed = true;
            }
            if (@event.IsActionReleased("MoveLeft"))
            {
                icei.leftRelease = true;
            }
            if (@event.IsActionPressed("MoveRight"))
            {
                icei.rightPressed = true;
            }
            if (@event.IsActionReleased("MoveRight"))
            {
                icei.rightRelease = true;
            }
            icei.FireEvent();

            if (!mouseUpdateCalled)
            {
                mouseUpdateCalled = true;
                mouseUpdate();
                mouseUpdateCalled = false;
            }
        }
        if (@event is InputEventMouseMotion)
        {
            //Update the mouse position only if the mouse update function is not running yet
            if (!mouseUpdateCalled)
            {
                mouseUpdateCalled = true;
                mouseUpdate();
                mouseUpdateCalled = false;
            }
        }
    }
Esempio n. 8
0
    public override void _UnhandledInput(Godot.InputEvent @event)
    {
        ihei = new InputHandleEvent();
        if (@event is InputEventMouseButton eventMouseButton)
        {
            if (eventMouseButton.Pressed)
            {
                if (eventMouseButton.ButtonIndex == (int)ButtonList.Left)
                {
                    ihei.lmbPressed = true;
                }
                if (eventMouseButton.ButtonIndex == (int)ButtonList.Right)
                {
                    ihei.rmbPressed = true;
                }
            }
            else
            {
                if (eventMouseButton.ButtonIndex == (int)ButtonList.Left)
                {
                    ihei.lmbPressed = false;
                }
                if (eventMouseButton.ButtonIndex == (int)ButtonList.Right)
                {
                    ihei.rmbPressed = false;
                }
            }
        }

        if (Input.IsKeyPressed((int)KeyList.W))
        {
            ihei.upPressed = true;
        }
        else
        {
            ihei.upPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.S))
        {
            ihei.downPressed = true;
        }
        else
        {
            ihei.downPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.A))
        {
            ihei.leftPressed = true;
        }
        else
        {
            ihei.leftPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.D))
        {
            ihei.rightPressed = true;
        }
        else
        {
            ihei.rightPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.Space))
        {
            ihei.jumpPressed = true;
        }
        else
        {
            ihei.jumpPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.Control))
        {
            ihei.crouchPressed = true;
        }
        else
        {
            ihei.crouchPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.Shift))
        {
            ihei.sprintPressed = true;
        }
        else
        {
            ihei.sprintPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.E))
        {
            ihei.abilityPressed = true;
        }
        else
        {
            ihei.abilityPressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.Q))
        {
            ihei.consolePressed = true;
        }
        else
        {
            ihei.consolePressed = false;
        }
        if (Input.IsKeyPressed((int)KeyList.Escape))
        {
            ihei.escapePressed = true;
        }
        else
        {
            ihei.escapePressed = false;
        }

        // if (@event is InputEventKey eventKey)
        // {
        //     if (eventKey.Pressed)
        //     {
        //         if (eventKey.Scancode == (int)KeyList.W) ihei.upPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.S) ihei.downPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.A) ihei.leftPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.D) ihei.rightPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.Space) ihei.jumpPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.C) ihei.crouchPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.Shift) ihei.sprintPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.E) ihei.abilityPressed = true;
        //         if (eventKey.Scancode == (int)KeyList.Q) ihei.consolePressed = true;
        //     }
        //     else
        //     {
        //         if (eventKey.Scancode == (int)KeyList.W) ihei.upPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.S) ihei.downPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.A) ihei.leftPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.D) ihei.rightPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.Space) ihei.jumpPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.C) ihei.crouchPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.Shift) ihei.sprintPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.E) ihei.abilityPressed = false;
        //         if (eventKey.Scancode == (int)KeyList.Q) ihei.consolePressed = false;
        //     }
        // }
        ihei.FireEvent();
    }