public void MoveTo(float position) { if (HighLogic.LoadedSceneIsEditor) { var deltaPosition = rawServo.Translator.ToInternalPos(position) - (rawServo.Position); rawServo.EditorApplyDeltaPos(deltaPosition); } else { RawServo.Translator.Move(position, RawServo.customSpeed * RawServo.speedTweak); } }
public void MoveTo(int presetIndex) { if (rawServo.PresetPositions == null || rawServo.PresetPositions.Count == 0 || presetIndex < 0 || presetIndex >= rawServo.PresetPositions.Count) { return; } float nextPosition = rawServo.PresetPositions[presetIndex]; if (HighLogic.LoadedSceneIsEditor) { var deltaPosition = nextPosition - (rawServo.Position); rawServo.EditorApplyDeltaPos(deltaPosition); } else { //because Translator expects position in external coordinates nextPosition = rawServo.Translator.ToExternalPos(nextPosition); rawServo.Translator.Move(nextPosition, rawServo.customSpeed * rawServo.speedTweak); } Logger.Log("[Action] MoveToPreset, index=" + presetIndex + " currentPos = " + rawServo.Position + ", nextPosition=" + nextPosition, Logger.Level.Debug); }