Move the task of spreading temperature changes from the modifiers to a more generic solution
Relates to #62
Hi! This commit changes the way the per-tile temperature is being calculated, before it was the temperature modifier’s responsibility (e.g. a radiator that generates heat) to, well, radiate heat from its point of origin.
This approach was changed so that the temperature modifier is only changing the temperature of the tile it is being placed on, the propagation (and subsequent drop-off) of that is being done by doing a weighted averaging of the surrounding temperatures for every tile.
Walls have a very insulating effect, doors and windows less so. Since a picture says more than a thousand words, look at the following picture:
Even though I cleverly choose a bad lighting situation, you can see three distinct heat sources (radiator objects) here, all the rooms (except the one at the top right) are connected by doors, so you can actually see how the heat is spreading through the building “naturally”. 🙂
Next up is doing something similar for the outside world and trying to figure out how to implement heat pumps the best way, but hopefully that should not take too long. 🙂