예제 #1
0
    /*
     *  Funcion: distribuirLiquidoHorizontalmente()
     *
     *  Ejecuta la operacion de distribucion de liquido horizontal para la celda actual.
     */
    public void distribuirLiquidoHorizontalmente()
    {
        Celda abajo = getCeldaAbajo();

        if (abajo != null && !abajo.es_solido && abajo.estaEnAire())
        {
            return;
        }
        if (!puedeFluirHaciaAbajo() && saturacion > 0f)
        {
            procesarFlujoHorizontal();
        }
    }
예제 #2
0
    /*
     *  Funcion: estaEnAire()
     *
     *  Devuelve true si la celda esta en el aire, falso si no.
     *
     *  Si la celda abajo de la celda actual existe (i.e. la celda actual tiene indice_y > 0), la celda abajo no es solida
     *  y la celda abajo tiene saturacion > 0, entonces el devuelve el resultado de llamar la funcion estaEnAire() de la
     *  celda abajo.
     *
     *  Si no se cumple la condicion anterior, devuelve el resultado de la funcion puedeFluirHaciaAbajo().
     */
    public bool estaEnAire()
    {
        Celda abajo = getCeldaAbajo();

        if (abajo != null && !abajo.es_solido && abajo.saturacion > 0f)
        {
            return(abajo.estaEnAire());
        }

        if (puedeFluirHaciaAbajo())
        {
            esta_en_aire = true;
        }
        else
        {
            esta_en_aire = false;
        }

        return(esta_en_aire);
    }