Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
            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);
                }
            }