anchor.diff:  			internal.temperature = max(internal.temperature + cooling_heat_amount / internal_heat_capacity, TCMB)
   		update_parents()
   
  -	if(	(internal.temperature >= (selected_recipe.min_temp * MIN_DEVIATION_RATE) && internal.temperature <= selected_recipe.min_temp) || \
  -		(internal.temperature >= selected_recipe.max_temp && internal.temperature <= (selected_recipe.max_temp * MAX_DEVIATION_RATE)))
  -		quality_loss = min(quality_loss + 1.5, 100)
  -
  -	var/median_temperature = (selected_recipe.max_temp - selected_recipe.min_temp) * 0.5
  -	if(internal.temperature >= (median_temperature * MIN_DEVIATION_RATE) && internal.temperature <= (median_temperature * MAX_DEVIATION_RATE))
  -		quality_loss = max(quality_loss - 5.5, -100)
  -
  -	if(selected_recipe.reaction_type == "endothermic")
  -		internal.temperature = max(internal.temperature - (selected_recipe.energy_release / internal.heat_capacity()), TCMB)
  -	else if(selected_recipe.reaction_type == "exothermic")
  -		internal.temperature = max(internal.temperature + (selected_recipe.energy_release / internal.heat_capacity()), TCMB)
  -
   ///Calculate the total moles needed for the recipe
   /obj/machinery/atmospherics/components/binary/crystallizer/proc/moles_calculations()
   	var/amounts = 0
  
positive.code: 
  ///Calculation for the heat of the various gas mixes and controls the quality of the item
  /obj/machinery/atmospherics/components/binary/crystallizer/proc/heat_calculations()
  	var/datum/gas_mixture/cooling_port = airs[1]
  	if(cooling_port.total_moles() > MINIMUM_MOLE_COUNT)
  		if(internal.total_moles() > 0)
  
negative.code: 	if(!on || !is_operational || selected_recipe == null)
  		return
  
  	if(check_gas_requirements())
  		inject_gases()
  
  	if(!internal.total_moles())
  		update_parents()
  		return
  
  	heat_conduction()
  
  	if(internal_check())
  		if(check_temp_requirements())
  