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;
    }
Esempio n. 2
0
 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;
         }
     }
 }
Esempio n. 3
0
    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");
        }
    }
Esempio n. 4
0
    // 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;
    }
Esempio n. 5
0
 public void SetChild(RoboticServo servo)
 {
     limbLength = Vector3.Distance(transform.position, servo.transform.position);
     servoChild = servo;
 }