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