Example #1
0
 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);
        }