anchor.diff:   * 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
  +	if(!on)
  +		return
  +
  +	var/turf/local_turf = get_turf(src)
  +
  +	if(!is_operational || !local_turf)
   		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]
  +	var/datum/gas_mixture/main_port = airs[2]
  +	var/datum/gas_mixture/exchange_target = airs[1]
   
   	// 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
  
positive.code: 	if(!anchored || panel_open)
  		return FALSE
  	. = ..()
  
  /obj/machinery/atmospherics/components/binary/thermomachine/get_node_connects()
  	return list(dir, turn(dir, 180))
  
  /obj/machinery/atmospherics/components/binary/thermomachine/on_construction(obj_color, set_layer)
  	var/obj/item/circuitboard/machine/thermomachine/board = circuit
  
negative.code: 	data["target"] = target_temperature
  	data["initial"] = initial(target_temperature)
  
  	var/datum/gas_mixture/main_port = airs[2]
  	data["temperature"] = main_port.temperature
  	data["pressure"] = main_port.return_pressure()
  	data["efficiency"] = efficiency
  
  	data["use_env_heat"] = use_enviroment_heat
  