public PlayerControllerComponent(PlayerInfo player)
        {
            base.GamePadIndex = player.GamepadIndex;

            if (player.IsKeyboardPlayer)
            {
                Mappings.Add(new InputMapping(null, MovementFromKeyboard));

                Mappings.Add(new InputMapping(f => InputFunctions.KeyboardDash(f), f => StartDash()));

                Mappings.Add(new InputMapping(f => InputFunctions.KeyboardStartShout(f), f => SwitchState(PlayerState.Shouting)));
                Mappings.Add(new InputMapping(f => InputFunctions.KeyboardEndShout(f), f => SwitchState(PlayerState.Walking)));

                Mappings.Add(new InputMapping(f => InputFunctions.KeyboardStartLure(f), f => SwitchState(PlayerState.Luring)));
                Mappings.Add(new InputMapping(f => InputFunctions.KeyboardEndLure(f), f => SwitchState(PlayerState.Walking)));
            }
            else
            {
                Mappings.Add(new InputMapping(null, MovementFromGamepad));

                Mappings.Add(new InputMapping(f => InputFunctions.Dash(f), f => StartDash()));


                Mappings.Add(new InputMapping(f => InputFunctions.StartShout(f), f => SwitchState(PlayerState.Shouting)));
                Mappings.Add(new InputMapping(f => InputFunctions.EndShout(f), f => SwitchState(PlayerState.Walking)));

                Mappings.Add(new InputMapping(f => InputFunctions.StartLure(f), f => SwitchState(PlayerState.Luring)));
                Mappings.Add(new InputMapping(f => InputFunctions.EndLure(f), f => SwitchState(PlayerState.Walking)));
            }
        }