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); }
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; } } }
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()); } } } }