示例#1
0
 public override bool Mover(Movimentos movimento, Movimento.Tipo tipo)
 {
     if (tipo == Movimento.Tipo.posicao && InclinacaoAtual == STATE_INCLINACAO_PARA_BAIXO)
     {
         throw new System.Exception("Movimento não pode ser realizado na inclinação " + STATE_INCLINACAO_PARA_BAIXO);
     }
     return(base.Mover(movimento, tipo));
 }
示例#2
0
        public virtual bool Mover(Movimentos movimento, Movimento.Tipo tipo)
        {
            try
            {
                Exception e = new Exception("Estado Inválido. Estado do componente resetado para o estado inicial.");
                if (tipo == Movimento.Tipo.posicao)
                {
                    if (movimento == Movimentos.avancar && ++estadoAtualIndex == estados.Length)
                    {
                        throw e;
                    }
                    if (movimento == Movimentos.retroceder && --estadoAtualIndex < 0)
                    {
                        throw e;
                    }
                }
                else if (tipo == Movimento.Tipo.inclinacao)
                {
                    if (movimento == Movimentos.avancar && ++inclinacaoAtualIndex == estados.Length)
                    {
                        throw e;
                    }
                    if (movimento == Movimentos.retroceder && --inclinacaoAtualIndex < 0)
                    {
                        throw e;
                    }
                }
            }
            catch (Exception e)
            {
                inclinacaoAtualIndex = 1;
                estadoAtualIndex     = GetDefaultEstadoAtualIndex();
                throw e;
            }

            return(true);
        }