Valance said:
Perhaps it would help if I explain what I'm doing codewise...
For every face that get's to be drawn I'm checking direct adjacent sides if there is a glass block in the same plane and set the corresponding bit in a special variable. Bit 1 if block to the "north" is glass, bit 2 if the right one, ... this gets me my texture index to use when actually draw the face. (In real I'm not only checking if the adjacent block are made of glass, I also check if there's another glass block in front of them to fix another visual issue I noticed.) The same procedure should get used for the four adjacent corners, but then I would need seperate textures for all pieces that could have a corner.
I don't quite get what you're checking, but you only need to check one block in each direction, from what I can think of myself. An example, where we're checking the black cloth block.
[]

[]
The Red block isn't going to affect the black block's orientation in any way, because there is nowhere for it to touch and interact with the black block. The gray blocks will all effect the corners of the block, depending on which grey blocks are occupied by a glass block. The white blocks are obviously going to affect the black block the most, dictating which sides should have sides or not.
[E] Thinking about each possibility of what blocks can and can't be occupied and how they affect all the other blocks - the grey blocks should only be checked if an adjacent white block is present. That's the only time that the grey block will affect how the black block should be rendered.