anchor.diff:  	if(isliving(A))
   		check_heat(A)
   
  -/obj/machinery/shower/process()
  -	if(on && reagents.total_volume >= 5)
  -		reagents.remove_any(5)
  +/obj/machinery/shower/process(delta_time)
  +	if(on && reagents.total_volume)
  +		reagents.remove_any(2.5 * delta_time)
   		wash_atom(loc)
   		for(var/am in loc)
   			var/atom/movable/movable_content = am
  -			reagents.expose(movable_content, TOUCH, SHOWER_REACTION_MULTIPLIER) //There's not many reagents leaving the sink at once! This should make for a 10 unit reaction
  +			reagents.expose(movable_content, TOUCH, SHOWER_REACTION_MULTIPLIER * delta_time) //There's not many reagents leaving the sink at once! This should make for a 10 unit reaction
   			if(!ismopable(movable_content)) // Mopables will be cleaned anyways by the turf wash above
   				wash_atom(movable_content)
  -	else
  -		reagents.add_reagent(reagent_id, 1)
  -		on = FALSE
  -		soundloop.stop()
  -		handle_mist()
  -		update_icon()
  +		return
  +
  +	on = FALSE
  +	soundloop.stop()
  +	handle_mist()
  +	if(can_refill)
  +		reagents.add_reagent(reagent_id, refill_rate * delta_time)
  +	update_icon()
   	if(reagents.total_volume == reagents.maximum_volume)
   		return PROCESS_KILL
   
  
positive.code: #define SHOWER_NORMAL_TEMP 300
  #define SHOWER_BOILING "boiling"
  #define SHOWER_BOILING_TEMP 400
  #define SHOWER_REACTION_MULTIPLIER 0.05
  
  
  /obj/machinery/shower
  
negative.code: 	else
  		return ..()
  
  /obj/machinery/shower/multitool_act(mob/living/user, obj/item/I)
  	. = ..()
  	if(. || !can_toggle_refill)
  		return
  
  	can_refill = !can_refill
  	to_chat(user, "<span class=notice>You [can_refill ? "en" : "dis"]able the shower's water recycler.</span>")
  	playsound(src, 'sound/machines/click.ogg', 20, TRUE)
  	return TRUE
  
  
  /obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
  	..()
  	to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I]...</span>")
  