anchor.diff: -/obj/machinery/droneDispenser
  +/obj/machinery/droneDispenser //Most customizable machine 2015
   	name = "drone shell dispenser"
   	desc = "A hefty machine that, when supplied with metal and glass, will periodically create a drone shell. Does not need to be manually operated."
   	icon = 'icons/obj/machines/droneDispenser.dmi'
  
positive.code: 		if((O && O.loc == src) || !stack)
  			qdel(O)
  		return
  	if(istype(O, /obj/item/weapon/weldingtool) && stat & BROKEN)
  		var/obj/item/weapon/weldingtool/WT = O
  		if(!WT.isOn())
  			return
  
negative.code: 	..()
  	if(stat & (NOPOWER|BROKEN) || !anchored)
  		return
  	if((metal_cost && glass_cost) && (metal < metal_cost || glass < glass_cost))
  		return
  	if(droneMadeRecently)
  		icon_state = icon_recharging
  		return
  	droneMadeRecently = 1
  	if(begin_create_message)
  		visible_message("<span class='notice'>[src] [begin_create_message]</span>")
  	if(work_sound)
  		playsound(src, work_sound, 50, 1)
  	icon_state = icon_creating
  	spawn(30)
  		icon_state = icon_on
  		metal -= metal_cost
  		glass -= glass_cost
  		if(metal < 0)
  			metal = 0
  		if(glass < 0)
  			glass = 0
  		if(power_used)
  			use_power(power_used)
  		new dispense_type(loc)
  		if(create_sound)
  			playsound(src, create_sound, 50, 1)
  		if(end_create_message)
  			visible_message("<span class='notice'>[src] [end_create_message]</span>")
  		icon_state = icon_recharging
  		spawn(cooldownTime)
  			icon_state = icon_on
  			droneMadeRecently = 0
  			if(recharge_sound)
  				playsound(src, recharge_sound, 50, 1)
  			if(recharge_message)
  				visible_message("<span class='notice'>[src] [recharge_message]</span>")
  
  /obj/machinery/droneDispenser/attackby(obj/item/O, mob/living/user)
  	if(istype(O, /obj/item/stack))
  		if(!O.materials[MAT_METAL] && !O.materials[MAT_GLASS])
  			return ..()
  		if(!metal_cost && !glass_cost)
  			user << "<span class='warning'>There isn't a place to insert [O]!</span>"
  			return
  		var/stack = 1
  