Exemplo n.º 1
0
    private void process_input(float timeDelta)
    {
        direction = new Vector3();
        var cameraTransform     = camera.GetGlobalTransform();
        var inputMovementVector = new Vector2();

        if (Input.IsActionPressed("movement_forward"))
        {
            inputMovementVector.y += 1;
        }
        if (Input.IsActionPressed("movement_backward"))
        {
            inputMovementVector.y -= 1;
        }
        if (Input.IsActionPressed("movement_left"))
        {
            inputMovementVector.x -= 1;
        }
        if (Input.IsActionPressed("movement_right"))
        {
            inputMovementVector.x += 1;
        }
        inputMovementVector = inputMovementVector.Normalized();

        direction += -cameraTransform.basis.z.Normalized() * inputMovementVector.y;
        direction += cameraTransform.basis.x.Normalized() * inputMovementVector.x;

        if (IsOnFloor())
        {
            if (Input.IsActionJustPressed("movement_jump"))
            {
                velocity.y = JUMP_SPEED;
            }
        }

        if (Input.IsActionJustPressed("ui_cancel"))
        {
            if (Input.GetMouseMode() == Input.MouseMode.Visible)
            {
                Input.SetMouseMode(Input.MouseMode.Captured);
            }
            else
            {
                Input.SetMouseMode(Input.MouseMode.Visible);
            }
        }

        if (Input.IsActionPressed("movement_sprint"))
        {
            isSprinting = true;
        }
        else
        {
            isSprinting = false;
        }

        if (Input.IsActionJustPressed("flashlight"))
        {
            if (flashlight.IsVisibleInTree())
            {
                flashlight.Hide();
            }
            else
            {
                flashlight.Show();
            }
        }
    }
Exemplo n.º 2
0
    private void process_input(float delta)
    {
        /*###############################################*/
        /*WALKING*/
        dir = new Vector3();
        Transform cam_xform = camera.GetGlobalTransform();

        Vector2 input_movement_vector = new Vector2();

        if (Input.IsActionPressed("movement_forward"))
        {
            input_movement_vector.y += 1;
        }
        if (Input.IsActionPressed("movement_backward"))
        {
            input_movement_vector.y -= 1;
        }
        if (Input.IsActionPressed("movement_left"))
        {
            input_movement_vector.x -= 1;
        }
        if (Input.IsActionPressed("movement_right"))
        {
            input_movement_vector.x += 1;
        }

        input_movement_vector = input_movement_vector.Normalized();

        dir += -cam_xform.basis.z.Normalized() * input_movement_vector.y;
        dir += cam_xform.basis.x.Normalized() * input_movement_vector.x;
        /*###############################################*/

        /*###############################################*/
        /*JUMPING*/
        if (IsOnFloor())
        {
            if (Input.IsActionJustPressed("movement_jump"))
            {
                vel.y = JUMP_SPEED;
            }
        }
        /*###############################################*/

        /*###############################################*/
        /*SPRINTING*/
        if (Input.IsActionJustPressed("movement_sprint"))
        {
            is_sprinting = true;
        }
        else
        {
            is_sprinting = false;
        }
        /*###############################################*/

        /*###############################################*/
        /*Turning the flashlight on/off*/
        if (Input.IsActionJustPressed("flashlight"))
        {
            if (flashlight.IsVisibleInTree())
            {
                flashlight.Hide();
            }
            else
            {
                flashlight.Show();
            }
        }
        /*###############################################*/

        /*###############################################*/
        /*Capturing/Freeing the cursor*/
        if (Input.IsActionJustPressed("ui_cancel"))
        {
            if (Input.GetMouseMode() == Input.MouseMode.Visible)
            {
                Input.SetMouseMode(Input.MouseMode.Captured);
            }
            else
            {
                Input.SetMouseMode(Input.MouseMode.Visible);
            }
        }
        /*###############################################*/
    }
Exemplo n.º 3
0
    private void ProcessInput(float delta)
    {
        // ========================================================
        // berjalan
        direction = new Vector3();
        Transform camXform = Camera.GlobalTransform;

        Vector2 inputMovementVector = new Vector2();

        if (Input.IsActionPressed("movement_forward"))
        {
            inputMovementVector.y += 1;
        }
        if (Input.IsActionPressed("movement_backward"))
        {
            inputMovementVector.y -= 1;
        }
        if (Input.IsActionPressed("movement_left"))
        {
            inputMovementVector.x -= 1;
        }
        if (Input.IsActionPressed("movement_right"))
        {
            inputMovementVector.x += 1;
        }

        if (Input.GetConnectedJoypads().Count > 0)
        {
            var joypadVec = Vector2.Zero;
            var osName    = OS.GetName();

            if (osName == "Windows" || osName == "X11")
            {
                joypadVec = new Vector2(Input.GetJoyAxis(0, 0), -Input.GetJoyAxis(0, 1));
            }
            else if (osName == "OSX")
            {
                joypadVec = new Vector2(Input.GetJoyAxis(0, 1), Input.GetJoyAxis(0, 2));
            }

            if (joypadVec.Length() < JOYPAD_DEADZONE)
            {
                joypadVec = Vector2.Zero;
            }
            else
            {
                joypadVec = joypadVec.Normalized() * ((joypadVec.Length() - JOYPAD_DEADZONE) / (1 - JOYPAD_DEADZONE));
            }

            inputMovementVector += joypadVec;
        }

        inputMovementVector = inputMovementVector.Normalized();
        // ========================================================

        // ========================================================
        // basis vector sudah ter-normalized
        direction += -camXform.basis.z * inputMovementVector.y;
        direction += camXform.basis.x * inputMovementVector.x;
        // ========================================================

        // ========================================================
        // melompat
        if (IsOnFloor())
        {
            if (Input.IsActionPressed("movement_jump"))
            {
                _velocity.y = JUMP_SPEED;
            }
        }
        // ========================================================

        // ========================================================
        // menangkap/melepaskan cursor
        if (Input.IsActionJustPressed("ui_cancel"))
        {
            if (Input.GetMouseMode().Equals(Input.MouseMode.Captured))
            {
                Input.SetMouseMode(Input.MouseMode.Captured);
            }
            else
            {
                Input.SetMouseMode(Input.MouseMode.Visible);
            }
        }
        // ========================================================

        // ===============================================================
        // Sprinting
        if (Input.IsActionPressed("movement_sprint"))
        {
            _isSprinting = true;
        }
        else
        {
            _isSprinting = false;
        }
        // ===============================================================

        // Turning the flashlight
        if (Input.IsActionJustPressed("flashlight"))
        {
            if (_flashLight.IsVisibleInTree())
            {
                _flashLight.Hide();
            }
            else
            {
                _flashLight.Show();
            }
        }

        // =======================================================================================
        // process changing weapon
        var weaponChangeNumber = WEAPON_NAME_TO_NUMBER[_currentWeaponName];

        if (Input.IsKeyPressed((int)KeyList.Key1))
        {
            weaponChangeNumber = 0;
        }
        if (Input.IsKeyPressed((int)KeyList.Key2))
        {
            weaponChangeNumber = 1;
        }
        if (Input.IsKeyPressed((int)KeyList.Key3))
        {
            weaponChangeNumber = 2;
        }
        if (Input.IsKeyPressed((int)KeyList.Key4))
        {
            weaponChangeNumber = 3;
        }

        if (Input.IsActionJustPressed("shift_weapon_positive"))
        {
            weaponChangeNumber += 1;
        }
        if (Input.IsActionJustPressed("shift_weapon_negative"))
        {
            weaponChangeNumber -= 1;
        }

        weaponChangeNumber = (byte)Mathf.Clamp(weaponChangeNumber, 0, WEAPON_NAME_TO_NUMBER.Count - 1);

        if (_changingWeapon == false)
        {
            if (_reloadingWeapon == false)
            {
                if (WEAPON_NUMBER_TO_NAME[weaponChangeNumber] != _currentWeaponName)
                {
                    _changingWeaponName = WEAPON_NUMBER_TO_NAME[weaponChangeNumber];
                    _changingWeapon     = true;
                    _mouseScrollValue   = weaponChangeNumber;
                }
            }
        }
        // ========================================================================================

        // ========================================================================================
        // firing the weapon
        if (Input.IsActionPressed("fire"))
        {
            if (_reloadingWeapon == false)
            {
                if (_changingWeapon == false)
                {
                    var currentWeapon = _weapons[_currentWeaponName];
                    if (currentWeapon != null)
                    {
                        if (currentWeapon.AmmoInWeapon > 0)
                        {
                            if (AnimationManager.CurrentState == currentWeapon.IDLE_ANIM_NAME)
                            {
                                AnimationManager.SetAnimation(currentWeapon.FIRE_ANIM_NAME);
                            }
                            else
                            {
                                _reloadingWeapon = true;
                            }
                        }
                    }
                }
            }
        }
        // ================================================================================

        //=================================================================================
        // realoading weapon
        if (_reloadingWeapon == false)
        {
            if (_changingWeapon == false)
            {
                if (Input.IsActionJustPressed("reload"))
                {
                    var currentWeapon = _weapons[_currentWeaponName];
                    if (currentWeapon != null)
                    {
                        if (currentWeapon.CAN_RELOAD == true)
                        {
                            var currentAnimState = AnimationManager.CurrentState;
                            var isReloading      = false;

                            foreach (var weapon in _weapons.Values)
                            {
                                if (weapon != null)
                                {
                                    if (currentAnimState == weapon.RELOAD_ANIM_NAME)
                                    {
                                        isReloading = true;
                                    }
                                }
                            }

                            if (isReloading == false)
                            {
                                _reloadingWeapon = true;
                            }
                        }
                    }
                }
            }
        }
        // ==================================================================================

        // ==================================================================================
        // Changing and throwing grenade
        if (Input.IsActionJustPressed("change_grenade"))
        {
            if (_currentGrenade == "Grenade")
            {
                _currentGrenade = "StickyGrenade";
            }
            else if (_currentGrenade == "StickyGrenade")
            {
                _currentGrenade = "Grenade";
            }
        }

        if (Input.IsActionJustPressed("fire_grenade"))
        {
            if (GRENADE_AMOUNTS[_currentGrenade] > 0)
            {
                GRENADE_AMOUNTS[_currentGrenade] -= 1;

                AbstractGrenade grenadeClone = null;
                if (_currentGrenade == "Grenade")
                {
                    grenadeClone = _grenadeScene.Instance() as Grenade;
                }
                else if (_currentGrenade == "StickyGrenade")
                {
                    grenadeClone = _stickyGrenadeScene.Instance() as StickyGrenade;
                }

                if (grenadeClone != null)
                {
                    GetTree().Root.AddChild(grenadeClone);
                    grenadeClone.GlobalTransform = GetNode <Spatial>("Rotation_Helper/Grenade_Toss_Pos").GlobalTransform;
                    grenadeClone.ApplyImpulse(Vector3.Zero, grenadeClone.GlobalTransform.basis.z * GRENADE_THROW_FORCE);
                }
            }
        }
        // ==================================================================================
        // ==================================================================================
        if (Input.IsActionJustPressed("fire") && _currentWeaponName == "UNARMED")
        {
            if (_grabbedObject == null)
            {
                var state = GetWorld().DirectSpaceState;

                var centerPosition = GetViewport().Size / 2;
                var rayFrom        = Camera.ProjectRayOrigin(centerPosition);
                var rayTo          = rayFrom + Camera.ProjectRayNormal(centerPosition) * OBJECT_GRAB_RAY_DISTANCE;

                var rayResult = state.IntersectRay(rayFrom, rayTo, new Array {
                    this, GetNode <Area>("Rotation_Helper/Gun_Fire_Points/Knife_Point/Area")
                });
                if (rayResult.Count > 0)
                {
                    if (rayResult["collider"] is RigidBody)
                    {
                        _grabbedObject = rayResult["collider"] as RigidBodyHitTest;
                        (_grabbedObject as RigidBody).Mode = RigidBody.ModeEnum.Static;
                        _grabbedObject.CollisionLayer      = 0;
                        _grabbedObject.CollisionMask       = 0;
                    }
                }
            }
            else
            {
                _grabbedObject.Mode = RigidBody.ModeEnum.Rigid;
                _grabbedObject.ApplyImpulse(Vector3.Zero, -Camera.GlobalTransform.basis.z.Normalized() * OBJECT_THROW_FORCE);
                _grabbedObject.CollisionLayer = 1;
                _grabbedObject.CollisionMask  = 1;

                _grabbedObject = null;
            }
        }

        if (_grabbedObject != null)
        {
            Transform globalTransform = _grabbedObject.GlobalTransform;
            globalTransform.origin         = Camera.GlobalTransform.origin + (-Camera.GlobalTransform.basis.z.Normalized() * OBJECT_GRAB_DISTANCE);
            _grabbedObject.GlobalTransform = globalTransform;
        }
        // ==================================================================================
    }
Exemplo n.º 4
0
    private void ProcessInput(float delta)
    {
        //  -------------------------------------------------------------------
        //  Walking
        _dir = new Vector3();
        Transform camXform = _camera.GlobalTransform;

        Vector2 inputMovementVector = new Vector2();

        if (Input.IsActionPressed("movement_forward"))
        {
            inputMovementVector.y += 1;
        }
        if (Input.IsActionPressed("movement_backward"))
        {
            inputMovementVector.y -= 1;
        }
        if (Input.IsActionPressed("movement_left"))
        {
            inputMovementVector.x -= 1;
        }
        if (Input.IsActionPressed("movement_right"))
        {
            inputMovementVector.x += 1;
        }

        inputMovementVector = inputMovementVector.Normalized();

        // Basis vectors are already normalized.
        _dir += -camXform.basis.z * inputMovementVector.y;
        _dir += camXform.basis.x * inputMovementVector.x;
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Jumping
        if (IsOnFloor())
        {
            if (Input.IsActionJustPressed("movement_jump"))
            {
                _vel.y = JumpSpeed;
            }
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Capturing/Freeing the cursor
        if (Input.IsActionJustPressed("ui_cancel"))
        {
            if (Input.GetMouseMode() == Input.MouseMode.Visible)
            {
                Input.SetMouseMode(Input.MouseMode.Captured);
            }
            else
            {
                Input.SetMouseMode(Input.MouseMode.Visible);
            }
        }
        //  -------------------------------------------------------------------


        if (Input.IsActionJustPressed("quit"))
        {
            GetTree().Quit(0);
        }

        //  -------------------------------------------------------------------
        //  Sprinting
        if (Input.IsActionPressed("movement_sprint"))
        {
            _isSprinting = true;
        }
        else
        {
            _isSprinting = false;
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Flashlight on/off
        if (Input.IsActionJustPressed("flashlight"))
        {
            if (_flashlight.IsVisibleInTree())
            {
                _flashlight.Hide();
            }
            else
            {
                _flashlight.Show();
            }
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Shoot weapon
        if (Input.IsActionJustPressed("shoot"))
        {
            currentWeapon.PrimaryFire();
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Reload weapon
        if (Input.IsActionJustPressed("reload"))
        {
            currentWeapon.Reload();
        }
    }
Exemplo n.º 5
0
    private void ProcessInput(float delta)
    {
        //  -------------------------------------------------------------------
        //  Walking
        _dir = new Vector3();
        Transform camXform = Camera.GlobalTransform;

        Vector2 inputMovementVector = new Vector2();

        if (Input.IsActionPressed("movement_forward"))
        {
            inputMovementVector.y += 1;
        }
        if (Input.IsActionPressed("movement_backward"))
        {
            inputMovementVector.y -= 1;
        }
        if (Input.IsActionPressed("movement_left"))
        {
            inputMovementVector.x -= 1;
        }
        if (Input.IsActionPressed("movement_right"))
        {
            inputMovementVector.x += 1;
        }

        inputMovementVector = inputMovementVector.Normalized();

        // Basis vectors are already normalized.
        _dir += -camXform.basis.z * inputMovementVector.y;
        _dir += camXform.basis.x * inputMovementVector.x;
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Jumping
        if (IsOnFloor() && Input.IsActionJustPressed("movement_jump"))
        {
            _vel.y = JumpSpeed;
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Sprinting
        if (Input.IsActionPressed("movement_sprint"))
        {
            _isSprinting = true;
        }
        else
        {
            _isSprinting = false;
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Turning the flashlight on/off

        if (Input.IsActionJustPressed("flashlight"))
        {
            if (_flashlight.IsVisibleInTree())
            {
                _flashlight.Hide();
            }
            else
            {
                _flashlight.Show();
            }
        }

        //  -------------------------------------------------------------------
        //  Changing _weapons

        int _weaponChangeNumber = _weaponNameToNumber[_currentWeaponName];

        if (Input.IsActionJustPressed("Weapon1"))
        {
            _weaponChangeNumber = 0;
        }
        if (Input.IsActionJustPressed("Weapon2"))
        {
            _weaponChangeNumber = 1;
        }
        if (Input.IsActionJustPressed("Weapon3"))
        {
            _weaponChangeNumber = 2;
        }
        if (Input.IsActionJustPressed("Weapon4"))
        {
            _weaponChangeNumber = 3;
        }

        if (Input.IsActionJustPressed("shift_weapon_positive"))
        {
            _weaponChangeNumber++;
        }
        if (Input.IsActionJustPressed("shift_weapon_negative"))
        {
            _weaponChangeNumber--;
        }

        _weaponChangeNumber = Mathf.Clamp(_weaponChangeNumber, 0, _weaponNumberToName.Count);

        if (_weaponNumberToName[_weaponChangeNumber] != _currentWeaponName)
        {
            if (!_reloadingWeapon && !_changingWeapon)
            {
                _changingWeaponName = _weaponNumberToName[_weaponChangeNumber];
                _changingWeapon     = true;
                _mouseScrollValue   = _weaponChangeNumber;
            }
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //  Firing Weapon
        if (Input.IsActionPressed("fire") && !_changingWeapon && !_reloadingWeapon)
        {
            Weapon _currentWeapon = _weapons[_currentWeaponName];
            if (_currentWeapon != null && _currentWeapon.AmmoInWeapon > 0)
            {
                if (AnimationPlayer.CurrentState == _currentWeapon.IdleAnimName)
                {
                    AnimationPlayer.CallbackFunction = GD.FuncRef(this, nameof(FireBullet));
                    AnimationPlayer.SetAnimation(_currentWeapon.FireAnimName);
                }
            }
            else
            {
                _reloadingWeapon = true;
            }
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //	Reloading
        if (!_reloadingWeapon && !_changingWeapon && Input.IsActionJustPressed("reload"))
        {
            Weapon _currentWeapon = _weapons[_currentWeaponName];
            if (_currentWeapon != null && _currentWeapon.CanReload)
            {
                string _currentAnimState = AnimationPlayer.CurrentState;
                bool   _isReloading      = false;
                foreach (string _weapon in _weapons.Keys)
                {
                    Weapon _weaponNode = _weapons[_weapon];
                    if (_weaponNode != null && _currentAnimState == _weaponNode.ReloadingAnimName)
                    {
                        _isReloading = true;
                    }
                }
                if (!_isReloading)
                {
                    _reloadingWeapon = true;
                }
            }
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //	Changing and throwing grenades

        if (Input.IsActionJustPressed("change_grenade"))
        {
            if (_currentGrenade == 0)
            {
                _currentGrenade = 1;
            }
            else if (_currentGrenade == 1)
            {
                _currentGrenade = 0;
            }
        }

        if (Input.IsActionJustPressed("fire_grenade") && _grenadeAmmounts[_currentGrenade] > 0)
        {
            _grenadeAmmounts[_currentGrenade]--;

            Grenade _grenadeClone;
            if (_currentGrenade == 0)
            {
                _grenadeClone = (FragGrenade)_fragGrenadeScene.Instance();
            }
            else
            {
                _grenadeClone = (StickyGrenade)_stickyGrenadeScene.Instance();
                // Sticky grenades will stick to the player if we do not pass ourselves
                _grenadeClone.PlayerBody = this;
            }

            GetTree().Root.AddChild(_grenadeClone);
            _grenadeClone.GlobalTransform = GetNode <Spatial>("Rotation_Helper/FragGrenade_Toss_Pos").GlobalTransform;
            _grenadeClone.ApplyImpulse(new Vector3(0, 0, 0), _grenadeClone.GlobalTransform.basis.z * FragGrenadeThrowForce);
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //	Grabbing and throwing objects
        if (Input.IsActionJustPressed("fire") && _currentWeaponName == "UNARMED")
        {
            if (_grabbedObject == null)
            {
                PhysicsDirectSpaceState _state = GetWorld().DirectSpaceState;

                Vector2 _centerPosition          = GetViewport().Size / 2;
                Vector3 _rayFrom                 = Camera.ProjectRayOrigin(_centerPosition);
                Vector3 _rayTo                   = _rayFrom + Camera.ProjectRayNormal(_centerPosition) * ObjectGrabRayDistance;
                Godot.Collections.Array _exclude = new Godot.Collections.Array();
                _exclude.Add(this);
                _exclude.Add(GetNode <Area>("Rotation_Helper/Gun_Fire_Points/Knife/Area"));
                Godot.Collections.Dictionary _rayResult = _state.IntersectRay(_rayFrom, _rayTo, _exclude);
                if (_rayResult.Count != 0 && _rayResult["collider"] is RigidBody)
                {
                    _grabbedObject = _rayResult["collider"];
                    RigidBody _grabbedRigid = (RigidBody)_grabbedObject;
                    _grabbedRigid.Mode = RigidBody.ModeEnum.Static;

                    _grabbedRigid.CollisionLayer = 0;
                    _grabbedRigid.CollisionMask  = 0;
                }
            }
            else
            {
                _grabbedRigid = (RigidBody)_grabbedObject;

                _grabbedRigid.Mode = RigidBody.ModeEnum.Rigid;

                _grabbedRigid.ApplyImpulse(new Vector3(0, 0, 0), -Camera.GlobalTransform.basis.z.Normalized() * ObjectThrowForce);

                _grabbedRigid.CollisionLayer = 1;
                _grabbedRigid.CollisionMask  = 1;

                _grabbedRigid  = null;
                _grabbedObject = null;
            }
        }
        if (_grabbedObject != null)
        {
            _grabbedRigid = (RigidBody)_grabbedObject;
            Transform _transform = new Transform(_grabbedRigid.GlobalTransform.basis, Camera.GlobalTransform.origin + (-Camera.GlobalTransform.basis.z.Normalized() * ObjectGrabDistance));
            _grabbedRigid.GlobalTransform = _transform;
        }
        //  -------------------------------------------------------------------

        //  -------------------------------------------------------------------
        //	Pause Popup
        if (Input.IsActionJustPressed("ui_cancel"))
        {
            if (_pausePopup == null)
            {
                _pausePopup        = (PausePopup)_pausePopupScene.Instance();
                _pausePopup.Player = this;

                _globals.CanvasLayer.AddChild(_pausePopup);
                _pausePopup.PopupCentered();

                Input.SetMouseMode(Input.MouseMode.Visible);

                GetTree().Paused = true;
            }
            else
            {
                Input.SetMouseMode(Input.MouseMode.Captured);
                _pausePopup = null;
            }
        }
        //  -------------------------------------------------------------------
    }
Exemplo n.º 6
0
    private void ProcessInput(float delta)
    {
        //  Walking
        var camGlobalTransform  = _camera.GetGlobalTransform();
        var inputMovementVector = new Vector3();

        if (Input.IsActionPressed("char_forward"))
        {
            inputMovementVector.z += 1;
        }
        if (Input.IsActionPressed("char_backward"))
        {
            inputMovementVector.z -= 1;
        }
        if (Input.IsActionPressed("char_left"))
        {
            inputMovementVector.x -= 1;
        }
        if (Input.IsActionPressed("char_right"))
        {
            inputMovementVector.x += 1;
        }

        inputMovementVector = inputMovementVector.Normalized();

        // Basis vectors are already normalized.
        _dir = -camGlobalTransform.basis.z * inputMovementVector.z + camGlobalTransform.basis.x * inputMovementVector.x;

        //  Jumping
        if (IsOnFloor())
        {
            if (Input.IsActionJustPressed("char_jump"))
            {
                _vel.y = JumpSpeed;
            }
        }

        if (Input.IsActionPressed("char_sprint"))
        {
            _isSprinting = true;
        }
        else
        {
            _isSprinting = false;
        }

        //  Turning the flashlight on/off
        if (Input.IsActionJustPressed("char_flashlight"))
        {
            if (_flashlight.IsVisibleInTree())
            {
                _flashlight.Hide();
            }
            else
            {
                _flashlight.Show();
            }
        }

        if (Input.IsActionJustPressed("action_1"))
        {
            var lookingAtObject = _rayCast.GetCollider();

            if (lookingAtObject is Node node && node.GetParent() is ContainerNode container)
            {
                container.HotCode(_hotcode1Node.Command);
            }
        }

        //  Capturing/Freeing the cursor
        if (Input.IsActionJustPressed("mouse_grab"))
        {
            Input.SetMouseMode(Input.GetMouseMode() == Input.MouseMode.Visible
                                ? Input.MouseMode.Captured
                                : Input.MouseMode.Visible);
        }
    }