namespace TurnTheGameOn.IKDriver
{
	using UnityEngine;
	using UnityEditor;
	using System.Collections;

	[CustomEditor(typeof(IKD_VehicleInput))]
	public class Editor_IKD_VehicleInput : Editor {

		public override void OnInspectorGUI(){
			IKD_VehicleInput vehicleInput = (IKD_VehicleInput)target;

			// inspector script reference
			GUI.enabled = false;
			EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((IKD_VehicleInput)target), typeof(IKD_VehicleInput), false);
			GUI.enabled = true;

			#region UI
			EditorGUILayout.Space ();
			EditorGUILayout.LabelField ("UI", EditorStyles.centeredGreyMiniLabel);
			SerializedProperty mobileCanvas = serializedObject.FindProperty ("mobileCanvas");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (mobileCanvas, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			SerializedProperty standardCanvas = serializedObject.FindProperty ("standardCanvas");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (standardCanvas, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			SerializedProperty dashboardCanvas = serializedObject.FindProperty ("dashboardCanvas");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (dashboardCanvas, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			SerializedProperty useStandardCanvas = serializedObject.FindProperty ("useStandardCanvas");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (useStandardCanvas, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			#endregion

			#region Axes
			EditorGUILayout.Space ();
			EditorGUILayout.LabelField ("Axes", EditorStyles.centeredGreyMiniLabel);
			// steering axis
			SerializedProperty steeringAxis = serializedObject.FindProperty ("steeringAxis");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (steeringAxis, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// throttle axis
			SerializedProperty throttleAxis = serializedObject.FindProperty ("throttleAxis");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (throttleAxis, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			#endregion

			#region keyboard input
			EditorGUILayout.Space ();
			EditorGUILayout.LabelField ("Keyboard", EditorStyles.centeredGreyMiniLabel);
			

			
			
			//bool
			SerializedProperty keyboardActive = serializedObject.FindProperty ("keyboardActive");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (keyboardActive, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			
			//kelach
			
			SerializedProperty kelachkKey = serializedObject.FindProperty ("clutch");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (kelachkKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			
			
						
			//keyboardActive
			
			SerializedProperty kebordTogle = serializedObject.FindProperty ("kebordTogle");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (kebordTogle, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			
			// hand brake
			SerializedProperty handBrakeKey = serializedObject.FindProperty ("handBrakeKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (handBrakeKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// shift up
			SerializedProperty shiftUpKey = serializedObject.FindProperty ("shiftUpKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (shiftUpKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// shift down
			SerializedProperty shiftDownKey = serializedObject.FindProperty ("shiftDownKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (shiftDownKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// look back
			SerializedProperty lookBackKey = serializedObject.FindProperty ("lookBackKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (lookBackKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			
			
			// camera switch
			SerializedProperty cameraSwitchKey = serializedObject.FindProperty ("cameraSwitchKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (cameraSwitchKey, true);
			if (EditorGUI.EndChangeCheck ())
			// nitro
				serializedObject.ApplyModifiedProperties ();
			SerializedProperty nitroKey = serializedObject.FindProperty ("nitroKey");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (nitroKey, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			#endregion

			#region joystick input
			EditorGUILayout.Space ();
			EditorGUILayout.LabelField ("Joystick", EditorStyles.centeredGreyMiniLabel);
			// hand brake joystick button
			SerializedProperty _handBrakeJoystick = serializedObject.FindProperty ("_handBrakeJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_handBrakeJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch (vehicleInput._handBrakeJoystick) {
			case Joystick.None:
				vehicleInput.handBrakeJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.handBrakeJoystick = KeyCode.JoystickButton19;
				break;
			}
			// nitro joystick button
			SerializedProperty _nitroJoystick = serializedObject.FindProperty ("_nitroJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_nitroJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch(vehicleInput._nitroJoystick){
			case Joystick.None:
				vehicleInput.nitroJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.nitroJoystick = KeyCode.JoystickButton19;
				break;
			}
			// shift up joystick button
			SerializedProperty _shiftUpJoystick = serializedObject.FindProperty ("_shiftUpJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_shiftUpJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch(vehicleInput._shiftUpJoystick){
			case Joystick.None:
				vehicleInput.shiftUpJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.shiftUpJoystick = KeyCode.JoystickButton19;
				break;
			}
			// shift down joystick button
			SerializedProperty _shiftDownJoystick = serializedObject.FindProperty ("_shiftDownJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_shiftDownJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch(vehicleInput._shiftDownJoystick){
			case Joystick.None:
				vehicleInput.shiftDownJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.shiftDownJoystick = KeyCode.JoystickButton19;
				break;
			}
			// look back joystick button
			SerializedProperty _lookBackJoystick = serializedObject.FindProperty ("_lookBackJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_lookBackJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch(vehicleInput._lookBackJoystick){
			case Joystick.None:
				vehicleInput.lookBackJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.lookBackJoystick = KeyCode.JoystickButton19;
				break;
			}
			// camera switch joystick button
			SerializedProperty _cameraSwitchJoystick = serializedObject.FindProperty ("_cameraSwitchJoystick");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (_cameraSwitchJoystick, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			switch(vehicleInput._cameraSwitchJoystick){
			case Joystick.None:
				vehicleInput.cameraSwitchJoystick = KeyCode.None;
				break;
			case Joystick.JoystickButton0:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton0; 
				break;
			case Joystick.JoystickButton1:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton1; 
				break;
			case Joystick.JoystickButton2:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton2; 
				break;
			case Joystick.JoystickButton3:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton3; 
				break;
			case Joystick.JoystickButton4:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton4; 
				break;
			case Joystick.JoystickButton5:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton5; 
				break;
			case Joystick.JoystickButton6:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton6; 
				break;
			case Joystick.JoystickButton7:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton7; 
				break;
			case Joystick.JoystickButton8:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton8; 
				break;
			case Joystick.JoystickButton9:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton9; 
				break;
			case Joystick.JoystickButton10:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton10; 
				break;
			case Joystick.JoystickButton11:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton11; 
				break;
			case Joystick.JoystickButton12:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton12; 
				break;
			case Joystick.JoystickButton13:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton13; 
				break;
			case Joystick.JoystickButton14:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton14; 
				break;
			case Joystick.JoystickButton15:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton15; 
				break;
			case Joystick.JoystickButton16:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton16; 
				break;
			case Joystick.JoystickButton17:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton17; 
				break;
			case Joystick.JoystickButton18:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton18; 
				break;
			case Joystick.JoystickButton19:
				vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton19;
				break;
			}
			EditorUtility.SetDirty (vehicleInput);
			#endregion

			#region mobile input
			EditorGUILayout.Space ();
			EditorGUILayout.LabelField ("Mobile", EditorStyles.centeredGreyMiniLabel);
			SerializedProperty mobileController = serializedObject.FindProperty ("mobileController");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (mobileController, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			SerializedProperty mobileSteeringType = serializedObject.FindProperty ("mobileSteeringType");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (mobileSteeringType, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();

			if (vehicleInput.mobileController) {
				TurnTheGameOn.IKDriver.IKD_StaticUtility.m_IKD_UtilitySettings.useMobileController = true;
			} else {
				TurnTheGameOn.IKDriver.IKD_StaticUtility.m_IKD_UtilitySettings.useMobileController = false;
			}
			// nitro on
			SerializedProperty nitroON = serializedObject.FindProperty ("nitroON");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (nitroON, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// nitro off
			SerializedProperty nitroOFF = serializedObject.FindProperty ("nitroOFF");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (nitroOFF, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// shift up
			SerializedProperty shiftUp = serializedObject.FindProperty ("shiftUp");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (shiftUp, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			// shift down
			SerializedProperty shiftDown = serializedObject.FindProperty ("shiftDown");
			EditorGUI.BeginChangeCheck ();
			EditorGUILayout.PropertyField (shiftDown, true);
			if (EditorGUI.EndChangeCheck ())
				serializedObject.ApplyModifiedProperties ();
			#endregion

		}
	}
}