package common.item;

import java.util.List;
import java.util.Map;
import java.util.Set;

import common.attributes.Attribute;
import common.attributes.AttributeModifier;
import common.attributes.Attributes;
import common.collect.Sets;
import common.color.TextColor;
import common.entity.npc.EntityNPC;
import common.init.MetalType;

public class ItemMetal extends Item {
	private final MetalType metal;
	
	public ItemMetal(MetalType metal) {
		this.metal = metal;
        if(this.metal.radioactivity > 0.0f)
        	this.setColor(TextColor.GREEN);
	}
	
	public void addInformation(ItemStack stack, EntityNPC playerIn, List<String> tooltip)
    {
		tooltip.add(this.metal.formatSymbol());
		if(this.metal.radioactivity > 0.0f) {
			tooltip.add(this.metal.formatRadioactivity());
		}
		tooltip.add(this.metal.formatRarity());
    }
	
//    public ChatFormat getColor(ItemStack stack)
//    {
//        return this.metal.radioactivity > 0.0f ? ChatFormat.GREEN : super.getColor(stack);
//    }

    public Map<Attribute, Set<AttributeModifier>> getItemInventoryModifiers()
    {
    	Map<Attribute, Set<AttributeModifier>> multimap = super.getItemInventoryModifiers();
        if(this.metal.radioactivity > 0.0f)
        	multimap.put(Attributes.RADIATION, Sets.newHashSet(new AttributeModifier(Attributes.ITEM_VAL_ID, "Metal modifier", (double)this.metal.radioactivity * 4.0, false, true, true)));
        return multimap;
    }
    
    public float getRadiation(ItemStack stack) {
    	return this.metal.radioactivity * 0.25f * (float)stack.stackSize;
    }
    
    public boolean isMagnetic() {
    	return this.metal.isMagnetic();
    }
}
