In particular, heat transfer through static metal blocks is unnecessarily performance intensive. We don't need to use collisions for these because we know their positions. In fact, we probably don't need collisions for crate to block transfer. We can possibly precompile a map of squares that have heat transfer relationships with static blocks and check if heatables are in those squares, in a loop in the foreground layer.
In particular, heat transfer through static metal blocks is unnecessarily performance intensive. We don't need to use collisions for these because we know their positions. In fact, we probably don't need collisions for crate to block transfer. We can possibly precompile a map of squares that have heat transfer relationships with static blocks and check if heatables are in those squares, in a loop in the foreground layer.