/// <summary>
        /// Invoked when a value is changed in the UI
        /// </summary>
        /// <param name="id">The id of the property</param>
        /// <param name="value">The value of the property</param>
        private void OnMenuPresetValueChanged(string id, string newValue)
        {
            if (!CurrentPresetIsValid)
            {
                return;
            }

            if (!float.TryParse(newValue, out float value))
            {
                return;
            }

            float defaultValue = value;

            if (id == FrontRotationID)
            {
                currentPreset.SetRotationFront(value);
                defaultValue = currentPreset.DefaultRotationY[0];
            }
            else if (id == RearRotationID)
            {
                currentPreset.SetRotationRear(value);
                defaultValue = currentPreset.DefaultRotationY[currentPreset.FrontWheelsCount];
            }
            else if (id == FrontOffsetID)
            {
                currentPreset.SetOffsetFront(-value);
                defaultValue = currentPreset.DefaultOffsetX[0];
            }
            else if (id == RearOffsetID)
            {
                currentPreset.SetOffsetRear(-value);
                defaultValue = currentPreset.DefaultOffsetX[currentPreset.FrontWheelsCount];
            }
            else if (id == SteeringLockID)
            {
                currentPreset.SetSteeringLock(value);
                defaultValue = currentPreset.DefaultSteeringLock;
            }
            else if (id == SuspensionHeightID)
            {
                currentPreset.SetSuspensionHeight(value);
                defaultValue = currentPreset.DefaultSuspensionHeight;
                //SetVehicleFixed(currentVehicle);
            }

            // Force one single refresh to update rendering at correct position after reset
            if (value == defaultValue)
            {
                RefreshVehicleUsingPreset(currentVehicle, currentPreset);
            }
        }