dbafda06ed
Each chunk's compiled rule is specialised once for every band of y that its vertical gradients bound, and for blocks below and at or above the preliminary surface when the rule asks for it. Conditions those facts decide are folded away, so a deep stone block evaluates only the rules that can apply there (ore veins, the underground rules) instead of walking the whole surface tree. Conditions only read the position and the world, so the blocks are the same. Surface stage, one thread, seed 1234: 2.45 -> 2.08 ms per chunk.