anchor.diff:  	insert_materials(I)
   	return material_amount
   
  -/datum/material_container/proc/insert_materials(obj/item/I) //for internal usage only
  -	var/datum/material/M
  -	for(var/MAT in materials)
  -		M = materials[MAT]
  -		M.amount += I.materials[MAT]
  -		total_amount += I.materials[MAT]
  +/datum/material_container/proc/insert_materials(obj/item/I, multiplier = 1) //for internal usage only
  +	var/datum/material/M
  +	for(var/MAT in materials)
  +		M = materials[MAT]
  +		M.amount += I.materials[MAT] * multiplier
  +		total_amount += I.materials[MAT] * multiplier
   
   //For consuming material
   //mats is a list of types of material to use and the corresponding amounts, example: list(MAT_METAL=100, MAT_GLASS=200)
  
positive.code: 
  /datum/material_container/proc/use_amount_type(amt, material_type)
  	var/datum/material/M
  	for(var/MAT in materials)
  		M = materials[MAT]
  		if(M.amount >= amt)
  			M.amount -= amt
  			total_amount -= amt
  
negative.code: 	if(!amt)
  		return 0
  
  	insert_materials(S,amt)
  	S.use(amt)
  	return amt
  
  