Simple and clear as all of your tutorial! Thanks a lot!
It is a pity, that I don't have time to test it.
One question came to my mind: How do I apply such values to the blocks?
In your example, you applied it generally to all blocks. What, if I have different blocks with the same textures, but I need different shiftings and angles on the different surfaces?