Cleans up all temporary canvases
Initializes the tile vision and explore state 2D arrays, called the first time the fog is recomputed
Initializes the circle used for rendering the negative parts of the fog (The vision ones)
Creates the buffer canvas which is used to pre-draw the fog This saves us a lot of fill rate during the main rendering.
Creates the rendering canvas, which is used to draw the fog on the main screen: It always has the same size as the screen and is used as a seperate layer
Callback which redraws the fog if a structure got destroyed or placed
Redraws the fog and also computes which tiles are explored and which not, used by the game logic
Resets all tile arrays without recreating them
Recomputes the cache if it hasn't been computed yet
Renders the fog and keeps track of explored / unexplored tiles