anchor.diff:  	if(!amt)
   		return 0
   
  -	for(var/i=0, i < amt, i++)
  -		insert_materials(S)
  +	insert_materials(S,amt)
   	S.use(amt)
   	return amt
   
  
positive.code: /datum/material_container/proc/retrieve(sheet_amt, datum/material/M)
  	if(sheet_amt > 0 && M.amount >= (sheet_amt * MINERAL_MATERIAL_AMOUNT))
  		var/count = 0
  		var/obj/item/stack/sheet/S
  
  		while(sheet_amt > MAX_STACK_SIZE)
  			S = new M.sheet_type(get_turf(owner))
  			S.amount = MAX_STACK_SIZE
  			count += MAX_STACK_SIZE
  			M.amount -= MAX_STACK_SIZE * MINERAL_MATERIAL_AMOUNT
  			total_amount -= MAX_STACK_SIZE * MINERAL_MATERIAL_AMOUNT
  			sheet_amt -= MAX_STACK_SIZE
  
  		if(round(M.amount / MINERAL_MATERIAL_AMOUNT))
  			S = new M.sheet_type(get_turf(owner))
  			S.amount = sheet_amt
  			count += sheet_amt
  			M.amount -= sheet_amt * MINERAL_MATERIAL_AMOUNT
  			total_amount -= sheet_amt * MINERAL_MATERIAL_AMOUNT
  		return count
  	return 0
  
  
negative.code: 
  /datum/material_container/proc/use_amount_type(amt, material_type)
  	var/datum/material/M
  	M = materials[material_type]
  	if(M)
  		if(M.amount >= amt)
  			M.amount -= amt
  			total_amount -= amt
  