using UnityEngine;

public class CarKeyboardControl : MonoBehaviour
{

  AckermanSteering m_steering;
  CarDrivetrain m_drivetrain;

  // Start is called before the first frame update
  void Start()
  {
    m_steering = GetComponent<AckermanSteering>();
    m_drivetrain = GetComponent<CarDrivetrain>();
  }

  // Update is called once per frame
  void Update()
  {

    if ( Input.GetKeyDown( KeyCode.UpArrow ) ) {
      if ( m_drivetrain.Gear < CarDrivetrain.GearSelection.First ) {
        m_drivetrain.Gear = CarDrivetrain.GearSelection.First;
      }

      m_drivetrain.TargetSpeed = 3000;
      m_drivetrain.Clutch = true;
    }

    if ( Input.GetKeyUp( KeyCode.UpArrow ) )
      m_drivetrain.TargetSpeed = 0;

    if ( Input.GetKeyDown( KeyCode.DownArrow ) ) {
      m_drivetrain.Gear = CarDrivetrain.GearSelection.Reverse;
      m_drivetrain.TargetSpeed = 1000;
      m_drivetrain.Clutch = true;
    }

    if ( Input.GetKeyUp( KeyCode.DownArrow ) )
      m_drivetrain.TargetSpeed = 0;

    if ( Input.GetKeyDown( KeyCode.LeftArrow ) )
      m_steering.Steering = 1f;
    if ( Input.GetKeyUp( KeyCode.LeftArrow ) )
      m_steering.Steering = 0;

    if ( Input.GetKeyDown( KeyCode.RightArrow ) )
      m_steering.Steering = -1f;
    if ( Input.GetKeyUp( KeyCode.RightArrow ) )
      m_steering.Steering = 0;

    if ( Input.GetKeyDown( KeyCode.PageUp ) )
      m_drivetrain.NextGear();

    if ( Input.GetKeyDown( KeyCode.PageDown ) )
      m_drivetrain.PreviousGear();
  }
}
