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: 
  /obj/machinery/hydroponics/power_change()
  	. = ..()
  	if(machine_stat & NOPOWER && self_sustaining)
  		self_sustaining = FALSE
  
  /obj/machinery/hydroponics/process(delta_time)
  	var/needs_update = 0 // Checks if the icon needs updating so we don't redraw empty trays every time
  
negative.code: 	if(myseed && (myseed.loc != src))
  		myseed.forceMove(src)
  
  	if(self_sustaining)
  		if(powered())
  			adjustWater(rand(1,2) * delta_time * 0.5)
  			adjustWeeds(-0.5 * delta_time)
  			adjustPests(-0.5 * delta_time)
  		else
  			set_self_sustaining(FALSE)
  			visible_message(span_warning("[name]'s auto-grow functionality shuts off!"))
  
  	if(world.time > (lastcycle + cycledelay))
  		lastcycle = world.time
  