package thaumcraft.api.wands; import java.util.LinkedHashMap; import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import thaumcraft.api.aspects.Aspect; /** * This class is used to keep the material information for the various caps. * It is also used to generate the wand recipes ingame. * @author Azanor * */ public class WandCap { private String tag; /** * Cost to craft this wand. Combined with the rod cost. */ private int craftCost; /** * the amount by which all aspect costs are multiplied */ float baseCostModifier; /** * specifies a list of primal aspects that use the special discount figure instead of the normal discount. */ List<Aspect> specialCostModifierAspects; /** * the amount by which the specified aspect costs are multiplied */ float specialCostModifier; /** * The texture that will be used for the ingame wand cap */ ResourceLocation texture; /** * the actual item that makes up this cap and will be used to generate the wand recipes */ ItemStack item; public static LinkedHashMap<String,WandCap> caps = new LinkedHashMap<String,WandCap>(); public WandCap (String tag, float discount, ItemStack item, int craftCost) { this.setTag(tag); this.baseCostModifier = discount; this.specialCostModifierAspects = null; texture = new ResourceLocation("thaumcraft","textures/models/wand_cap_"+getTag()+".png"); this.item=item; this.setCraftCost(craftCost); caps.put(tag, this); } public WandCap (String tag, float discount, List<Aspect> specialAspects, float discountSpecial, ItemStack item, int craftCost) { this.setTag(tag); this.baseCostModifier = discount; this.specialCostModifierAspects = specialAspects; this.specialCostModifier = discountSpecial; texture = new ResourceLocation("thaumcraft","textures/models/wand_cap_"+getTag()+".png"); this.item=item; this.setCraftCost(craftCost); caps.put(tag, this); } public float getBaseCostModifier() { return baseCostModifier; } public List<Aspect> getSpecialCostModifierAspects() { return specialCostModifierAspects; } public float getSpecialCostModifier() { return specialCostModifier; } public ResourceLocation getTexture() { return texture; } public void setTexture(ResourceLocation texture) { this.texture = texture; } public String getTag() { return tag; } public void setTag(String tag) { this.tag = tag; } public ItemStack getItem() { return item; } public void setItem(ItemStack item) { this.item = item; } public int getCraftCost() { return craftCost; } public void setCraftCost(int craftCost) { this.craftCost = craftCost; } /** * The research a player needs to have finished to be able to craft a wand with this cap. */ public String getResearch() { return "CAP_"+getTag(); } // Some examples: // WandCap WAND_CAP_IRON = new WandCap("iron", 1.1f, Arrays.asList(Aspect.ORDER),1, new ItemStack(ConfigItems.itemWandCap,1,0),1); // WandCap WAND_CAP_GOLD = new WandCap("gold", 1f, new ItemStack(ConfigItems.itemWandCap,1,1),3); }