heat: added map-based heating, not correct yet