anchor.diff:  		desc = initial(desc)
   		TRAY_NAME_UPDATE
   		if(self_sustaining) //No reason to pay for an empty tray.
  -			update_use_power(NO_POWER_USE)
  -			self_sustaining = FALSE
  +			set_self_sustaining(FALSE)
   	update_appearance()
   
   /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.
  
positive.code: 	if(myseed && (myseed.loc != src))
  		myseed.forceMove(src)
  
  	if(!powered() && self_sustaining)
  		visible_message("<span class='warning'>[name]'s auto-grow functionality shuts off!</span>")
  		update_use_power(NO_POWER_USE)
  		self_sustaining = FALSE
  		update_appearance()
  
  	else if(self_sustaining)
  		adjustWater(rand(1,2) * delta_time * 0.5)
  		adjustWeeds(-0.5 * delta_time)
  		adjustPests(-0.5 * delta_time)
  
  	if(world.time > (lastcycle + cycledelay))
  		lastcycle = world.time
  
negative.code: 	if(harvest)
  		. += mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_harvest3")
  
  /*
   * Setter proc to set a tray to a new self_sustaining state and update all values associated with it.
   *
   * new_value - true / false value that self_sustaining is being set to
   */
  /obj/machinery/hydroponics/proc/set_self_sustaining(new_value)
  	if(self_sustaining == new_value)
  		return
  
  	self_sustaining = new_value
  
  	update_use_power(self_sustaining ? IDLE_POWER_USE : NO_POWER_USE)
  	update_appearance()
  
  /obj/machinery/hydroponics/examine(user)
  	. = ..()
  