anchor.diff:  
   /obj/machinery/atmospherics/components/binary/thermomachine/proc/explode()
   	explosion(loc, 0, 0, 3, 3, TRUE, explosion_cause = src)
  -	var/datum/gas_mixture/main_port = airs[1]
  -	var/datum/gas_mixture/exchange_target = airs[2]
  +	var/datum/gas_mixture/main_port = airs[2]
  +	var/datum/gas_mixture/exchange_target = airs[1]
   	if(main_port)
   		loc.assume_air(main_port.remove_ratio(1))
   	if(exchange_target)
  
positive.code:  * E is the efficiency variable. At E=1 and M=0 it works out to be ((C1*T1)+(C2*T2))/(C1+C2).
   */
  /obj/machinery/atmospherics/components/binary/thermomachine/process_atmos()
  	if(!is_operational || !on)  //if it has no power or its switched off, dont process atmos
  		on = FALSE
  		update_appearance()
  		return
  
  	var/turf/local_turf = get_turf(src)
  	if(!local_turf)
  		on = FALSE
  		update_appearance()
  		return
  
  	// The gas we want to cool/heat
  	var/datum/gas_mixture/main_port = airs[1]
  	var/datum/gas_mixture/exchange_target = airs[2]
  
  	// The difference between target and what we need to heat/cool. Positive if heating, negative if cooling.
  	var/temperature_target_delta = target_temperature - main_port.temperature
  
negative.code: 		if(use_enviroment_heat)
  			exchange_target = local_turf.return_air()
  		else
  			exchange_target = airs[1]
  
  		if(exchange_target.total_moles() < 5)
  			mole_eff_thermal_port = 0.1
  