anchor.diff:  #define THERMOMACHINE_SAFE_TEMPERATURE 500000
  +#define THERMOMACHINE_POWER_CONVERSION 0.01
   
   /obj/machinery/atmospherics/components/binary/thermomachine
   	icon = 'icons/obj/atmospherics/components/thermomachine.dmi'
  
positive.code: 
  	if(!cooling)
  		efficiency *= mole_efficiency
  
  	main_port.temperature = max((THERMAL_ENERGY(main_port) + (heat_amount * efficiency)) / main_port.heat_capacity(), TCMB)
  
  	heat_amount = abs(heat_amount)
  	var/power_usage = 0
  	if(abs(temperature_target_delta)  > 1)
  		power_usage = (heat_amount * 0.35 + idle_power_usage) ** (1.25 - (5e7 * efficiency) / (max(5e7, heat_amount)))
  	else
  		power_usage = idle_power_usage
  	if(power_usage > 1e6)
  		power_usage *= efficiency
  
  	use_power(power_usage)
  	update_appearance()
  
negative.code: 			efficiency *= clamp(log(1.55, exchange_target.total_moles()) * 0.15, 0.65, 1)
  
  		efficiency *= mole_efficiency
  		efficiency = max(efficiency, parts_efficiency) 
  
  		if (exchange_target.temperature > THERMOMACHINE_SAFE_TEMPERATURE && safeties)
  			on = FALSE
  