public int getTopSolidOrLiquidBlock(int var1, int var2) {
        Chunk var3 = this.getChunkFromBlockCoords(var1, var2);
        int var4 = 127;
        var1 &= 15;

        for (var2 &= 15; var4 > 0; --var4) {
            int var5 = var3.getBlockID(var1, var4, var2);
            Material var6 = var5 == 0 ? Material.air : Block.blocksList[var5].blockMaterial;
            if (var6.getIsSolid() || var6.getIsLiquid()) {
                return var4 + 1;
            }
        }

        return -1;
    }