A lit charcoal pit will generate smoke now.

The top log layer will get scanned only one time, on client side, and the result will get saved in a Map of arrays, which is then used to spawn random smoke particles until the logs turn into charcoal.