Beispiel #1
0
 static void ExtendPistonToValue(IMyPistonBase piston, float value)
 {
     if (piston.CurrentPosition < value)
     {
         piston.SetValue("UpperLimit", value);
         piston.Extend();
     }
     else
     {
         piston.SetValue("LowerLimit", value);
         piston.Retract();
     }
 }
            public void setup()
            {
                piston_.SetValue <float>(Program.PropertyUpperLimit, 10f);
                piston_.SetValue <float>(Program.PropertyLowerLimit, 0f);
                piston_.SetValue <bool>(Program.PropertyInertiaTensor, true);
                piston_.Velocity = 0f;

                // calculate orientation
                Vector3D myselfM = piston_.WorldMatrix.Up;

                myselfM      = Vector3D.Rotate(myselfM, Matrix.Invert(parent_.Me.WorldMatrix));
                orientation_ = Base6Directions.GetDirection(myselfM);
            }
Beispiel #3
0
 public void startMininingStage2(List <IMyTerminalBlock> drillList, List <IMyTerminalBlock> pistonList, List <IMyTerminalBlock> rotorList)
 {
     if (!workFinished && isMiningDown && finishedMining)
     {
         if (getActualPistonExtend(pistonList, false) == 0f)
         {
             for (int i = 0; i < pistonList.Count; i++)
             {
                 IMyPistonBase pistonList_X = GridTerminalSystem.GetBlockWithName(pistonList[i].CustomName) as IMyPistonBase;
                 if (pistonList_X.CustomName.Contains(pistonNameTag) && pistonList_X.CustomName.Contains("Extender"))
                 {
                     pistonList_X.SetValue("Velocity", 1f);
                     pistonList_X.Enabled = true;
                 }
             }
         }
         if (getActualPistonExtend(pistonList, true) == getMaxPistonExtend(pistonList, true))
         {
             isMiningDown   = false;
             finishedMining = false;
             startMining(drillList, pistonList, rotorList);
             isExtended = true;
         }
     }
 }
Beispiel #4
0
        public void startMining(List <IMyTerminalBlock> drillList, List <IMyTerminalBlock> pistonList, List <IMyTerminalBlock> rotorList)
        {
            if (!isMiningDown && !workFinished)
            {
                //Piston settings
                float maxPistonExtend = getMaxPistonExtend(pistonList, false);
                float pistonSpeed     = 0.003f;

                //Rotor settings
                float rotorTorque       = 33599988f;
                float rotorVelocityArm  = 1f;
                float rotorVelocityHead = 3f;

                isMiningDown = true;

                //Pasting drill settings & enabling them
                for (int i = 0; i < drillList.Count; i++)
                {
                    IMyShipDrill drillList_X = GridTerminalSystem.GetBlockWithName(drillList[i].CustomName) as IMyShipDrill;
                    if (drillList_X.CustomName.Contains(drillNameTag))
                    {
                        drillList_X.Enabled = true;
                    }
                }

                //Pasting piston settings & enabling them
                for (int i = 0; i < pistonList.Count; i++)
                {
                    IMyPistonBase pistonList_X = GridTerminalSystem.GetBlockWithName(pistonList[i].CustomName) as IMyPistonBase;
                    if (pistonList_X.CustomName.Contains(pistonNameTag) && !pistonList_X.CustomName.Contains("Extender"))
                    {
                        pistonList_X.SetValue("Velocity", pistonSpeed);
                        pistonList_X.Enabled = true;
                    }
                }

                //Pasting advanced rotor settings & enabling them
                for (int i = 0; i < rotorList.Count; i++)
                {
                    IMyMotorAdvancedStator rotorList_X = GridTerminalSystem.GetBlockWithName(rotorList[i].CustomName) as IMyMotorAdvancedStator;
                    if (rotorList_X.CustomName.Contains(rotorNameTag))
                    {
                        if (rotorList_X.CustomName.Contains("Arm"))
                        {
                            rotorList_X.TargetVelocityRPM = rotorVelocityArm;
                            rotorList_X.Torque            = rotorTorque;
                            rotorList_X.BrakingTorque     = rotorTorque;
                            rotorList_X.Enabled           = true;
                        }
                        if (rotorList_X.CustomName.Contains("Head"))
                        {
                            rotorList_X.Torque            = rotorTorque;
                            rotorList_X.BrakingTorque     = rotorTorque;
                            rotorList_X.TargetVelocityRPM = rotorVelocityHead;
                            rotorList_X.Enabled           = true;
                        }
                        Echo("Rotor: " + i.ToString());
                    }
                }
            }
        }