private void HandleArgs(string Argument) { List <string> Args = Argument.Split(' ').ToList(); if (Args.Contains("Reverse", StringComparer.OrdinalIgnoreCase)) { OutRiggerRelease(); Piston.Enabled = true; Piston.Reverse(); } else if (Args.Contains("Halt", StringComparer.OrdinalIgnoreCase)) { Piston.Enabled = false; OutRiggerSecure(); } else if (Args.Contains("Continue", StringComparer.OrdinalIgnoreCase)) { OutRiggerRelease(); Piston.Enabled = true; } else if (Args.Contains("Halt/Continue", StringComparer.OrdinalIgnoreCase)) { if (Piston.Enabled) { Piston.Enabled = false; OutRiggerSecure(); } else { OutRiggerRelease(); Piston.Enabled = true; } } else if (Args.Contains("Klang", StringComparer.OrdinalIgnoreCase)) // When shit happens. { throw new KlangSafetyException("User"); } }
private void RunQuarry() { Piston pX = this[Pos.X]; Piston pY = this[Pos.Y]; Piston pZ = this[Pos.Z]; //If any of the pistons are still busy moving, wait. if (pX.IsMoving || pY.IsMoving || pZ.IsMoving) { m_reporter?.Invoke("Pistons moving..."); return; } if (pX.IsFullyExtendedAbsolute) { //If X is fully extended, move Z by one, then reverse X. if (pZ.IsFullyExtendedAbsolute) { if (pY.IsFullyExtended) { //All 3 pistons are fully extended. m_quarryPhase = Phase.Finished; } else { MovePiston(pY); } pZ.Reverse(); } else { MovePiston(pZ); } pX.Reverse(); } else { MovePiston(pX); } }