/// <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); } }