public void ServoAdded(RoboticServo servo) { ToggleRenderers(false); GameObject fakeJoint = null; // Debug.Log(kspPartName + " added"); if (kspPartName == "IR.Rotatron.Basic.v3") { fakeJoint = Instantiate(Resources.Load("Rotatron", typeof(GameObject))) as GameObject; fakeJoint.transform.SetParent(transform); fakeJoint.transform.localPosition = Vector3.zero; fakeJoint.transform.localEulerAngles = new Vector3(0, 0, 90); lineRenderer = fakeJoint.GetComponent <LineRenderer>(); } if (kspPartName == "IR.Pivotron.RangeNinety" || kspPartName == "IR.Pivotron.Sixty" || kspPartName == "IR.Pivotron.Hinge.Basic.v3" || kspPartName == "IR.Pivotron.Basic" || kspPartName == "IR.Pivotron.OneTwenty.v3") { fakeJoint = Instantiate(Resources.Load("Pivotron", typeof(GameObject))) as GameObject; fakeJoint.transform.SetParent(transform); fakeJoint.transform.localPosition = Vector3.zero; fakeJoint.transform.localEulerAngles = new Vector3(0, 0, 90); lineRenderer = fakeJoint.GetComponent <LineRenderer>(); } if (kspPartName == "IR.Extendatron.BasicHalf") { fakeJoint = Instantiate(Resources.Load("Extend", typeof(GameObject))) as GameObject; fakeJoint.transform.SetParent(transform); fakeJoint.transform.localPosition = Vector3.zero; fakeJoint.transform.localEulerAngles = new Vector3(0, 0, 0); lineRenderer = fakeJoint.GetComponent <LineRenderer>(); } jointObject = fakeJoint; this.servo = servo; }
public void SetLimbReference() { foreach (var servo in servos) { servo.limb = this; if (servo.limbControllerPart == LimbPart.Base) { servoBase = servo; } else if (servo.limbControllerPart == LimbPart.Wrist) { servoWrist = servo; } } }
public virtual void CustomStart(string servoName, MemoryBridge memoryBridge, LimbController limbController, int parentID) { this.servoName = servoName; gameObject.name = servoName; this.limbController = limbController; this.memoryBridge = memoryBridge; limitMin = memoryBridge.GetFloat(servoName + "minPos"); limitMax = memoryBridge.GetFloat(servoName + "maxPos"); // Debug.Log(limitMax); if (servoName.ToLower().Contains("base")) { Debug.Log("Let limb base"); limbControllerPart = RoboticLimb.LimbPart.Base; limbController.servoBase = this; } else if (servoName.ToLower().Contains("wrist")) { limbControllerPart = RoboticLimb.LimbPart.Wrist; } if (servoName.ToLower().Contains("reverse")) { invert = true; } hostPart = GetComponent <Part>(); hostPart.ServoAdded(this); lineRenderer = hostPart.lineRenderer; foreach (var part in hostPart.vessel.parts) { if (part.ID == parentID) { servoParent = part.servo; servoParent.SetChild(this); } } if (hostPart.name.ToLower().Contains("skip")) { DisableServo(true); Debug.Log(name + " disabled"); } }
// public Transform groundPoint; public void Clone(RoboticServo servoToClone) { servoToClone.servoName = servoName; servoToClone.servoParent = servoParent; servoToClone.servoChild = servoChild; servoToClone.limbControllerPart = limbControllerPart; servoToClone.servoBase = servoBase; servoToClone.limitMin = limitMin; servoToClone.limitMax = limitMax; // servoToClone.targetOffset = targetOffset; //servoToClone.memoryBridge = memoryBridge; servoToClone.limbAxis = limbAxis; servoToClone.lineRenderer = lineRenderer; servoToClone.color = color; servoToClone.hostPart = hostPart; //servoToClone.limbController = limbController; servoToClone.disabled = disabled; // servoToClone.invert = invert; }
public void SetChild(RoboticServo servo) { limbLength = Vector3.Distance(transform.position, servo.transform.position); servoChild = servo; }