private void UpdateTranslators() { //Transform adjustment time! foreach (var servo in ServoTransforms) { var rot = new ServoPosition { x = servo.StepAmount.x * ServoSpeed, y = servo.StepAmount.y * ServoSpeed, z = servo.StepAmount.z * ServoSpeed }; servo.ServoTransform.Translate(new Vector3(rot.x, rot.y, rot.z), Space.Self); var cur = currentPositions.First(c => c.TransformName == servo.ServoTransform.name); cur.x += rot.x; cur.y += rot.y; cur.z += rot.z; SavePositions(); } }
private void SetupTransforms() { if (_wheel == null) { _wheel = part.FindModuleImplementing <ModuleWheelBase>(); } if (_wheelTransform == null) { _wheelTransform = part.FindModelTransform(wheelTransform); } ServoTransforms = new List <ServoData>(); var tList = transformConfig.Split(','); for (int i = 0; i < tList.Count(); i += 10) { var g = part.FindModelTransform(tList[i]); var min = new ServoPosition { x = float.Parse(tList[i + 1]), y = float.Parse(tList[i + 2]), z = float.Parse(tList[i + 3]) }; var max = new ServoPosition { x = float.Parse(tList[i + 4]), y = float.Parse(tList[i + 5]), z = float.Parse(tList[i + 6]) }; var rot = new ServoPosition { x = float.Parse(tList[i + 7]), y = float.Parse(tList[i + 8]), z = float.Parse(tList[i + 9]) }; var rx = Math.Abs(rot.x) > ResourceUtilities.FLOAT_TOLERANCE; var ry = Math.Abs(rot.y) > ResourceUtilities.FLOAT_TOLERANCE; var rz = Math.Abs(rot.z) > ResourceUtilities.FLOAT_TOLERANCE; ServoTransforms.Add(new ServoData { ServoTransform = g, MinRange = min, MaxRange = max, StepAmount = rot, ChangeX = rx, ChangeY = ry, ChangeZ = rz }); } LoadPositions(); ApplyStartPosition(); SetGUIValues(); MonoUtilities.RefreshContextWindows(part); }