public void Run()
    {
        float l1 = 0, l2 = 0, ratio;

        foreach (Part i in p1)
        {
            //Debug.Log (vessel.transform.InverseTransformPoint (i.transform.position).x.ToString()+","+vessel.transform.InverseTransformPoint (i.transform.position).y.ToString()+","+vessel.transform.InverseTransformPoint (i.transform.position).z.ToString());
            l1 += (vessel.transform.InverseTransformPoint(i.transform.position) - vessel.findLocalCenterOfMass()).y * i.maxThrust;
        }
        foreach (Part i in p2)
        {
            l2 += (vessel.transform.InverseTransformPoint(i.transform.position) - vessel.findLocalCenterOfMass()).y * i.maxThrust;
        }
        //Debug.Log (l1.ToString()+"  "+l2.ToString());
        l1 = abs(l1);
        l2 = abs(l2);
        if (l1 > l2)
        {
            ratio = l2 / l1;
            foreach (Part i in p1)
            {
                ModuleEngineThrustController controller = i.Modules["ModuleEngineThrustController"] as ModuleEngineThrustController;
                controller.SetPercentage(ratio);
            }
        }
        else
        {
            ratio = l1 / l2;
            foreach (Part i in p2)
            {
                ModuleEngineThrustController controller = i.Modules["ModuleEngineThrustController"] as ModuleEngineThrustController;
                controller.SetPercentage(ratio);
            }
        }
    }
 public void UnRun()
 {
     foreach (Part i in p1)
     {
         ModuleEngineThrustController controller = i.Modules ["ModuleEngineThrustController"] as ModuleEngineThrustController;
         controller.SetPercentage(1);
     }
     foreach (Part i in p2)
     {
         ModuleEngineThrustController controller = i.Modules ["ModuleEngineThrustController"] as ModuleEngineThrustController;
         controller.SetPercentage(1);
     }
 }
 public void exc()
 {
     p1       = new List <Part>(4);
     p2       = new List <Part>(4);
     Accesses = vessel.Parts;
     foreach (Part i in Accesses)
     {
         if (i.Modules.Contains("ModuleEngineThrustController"))
         {
             ModuleEngineThrustController controller = i.Modules["ModuleEngineThrustController"] as ModuleEngineThrustController;
             controller.Events["Group1"].guiActive = true;
             controller.Events["Group2"].guiActive = true;
             if (controller.gp == 1)
             {
                 p1.Add(i);
             }
             if (controller.gp == 2)
             {
                 p2.Add(i);
             }
             Debug.Log("Lodaded an engine");
         }
     }
 }