@Override public ItemStack getCraftingResult(InventoryCrafting matrix) { int currentDurability = 0, totalDurability = 0; for (int a = 0; a < 3; a++) { ItemStack is = matrix.getStackInSlot(a); totalDurability += is.getMaxDamage(); currentDurability += is.getMaxDamage() - is.getItemDamage(); } return new ItemStack(ModItems.JADE_PAXEL, 1, ModMaterials.TOOL_JADE_PAXEL.getMaxUses() - (int) Math.floor((float) currentDurability * ModMaterials.TOOL_JADE_PAXEL.getMaxUses() / totalDurability)); } }
public ItemGenericPickaxe(ToolMaterial toolMaterial, Object repairMat) { super(toolMaterial); harvestLevel = toolMaterial.getHarvestLevel(); repairMaterial = repairMat; this.setCreativeTab(EsteemedInnovation.tabTools); this.setHarvestLevel(this.getClass().getName(), toolMaterial.getHarvestLevel()); }
@Override public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) { Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot); if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Tool modifier", theToolMaterial.getAttackDamage() + 0.5, 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Tool modifier", -1.5, 0)); } return multimap; }
ModItems.blindfoldArmor.setRepairItem(new ItemStack(Items.STRING)); ModItems.silverMetal.setRepairItem(new ItemStack(ModItems.silverIngot)); ModItems.silverTools.setRepairItem(new ItemStack(ModItems.silverIngot)); ModItems.boneTools.setRepairItem(new ItemStack(ModItems.dragonbone)); ModItems.fireBoneTools.setRepairItem(new ItemStack(ModItems.dragonbone)); ModItems.iceBoneTools.setRepairItem(new ItemStack(ModItems.dragonbone)); for(EnumDragonArmor armor : EnumDragonArmor.values()){ armor.armorMaterial.setRepairItem(new ItemStack(EnumDragonArmor.getScaleItem(armor))); ModItems.white_deathworm.setRepairItem(new ItemStack(ModItems.deathworm_chitin, 1, 1)); ModItems.red_deathworm.setRepairItem(new ItemStack(ModItems.deathworm_chitin, 1, 2)); ModItems.trollWeapon.setRepairItem(new ItemStack(Blocks.STONE)); ModItems.troll_mountain.setRepairItem(new ItemStack(EnumTroll.MOUNTAIN.leather)); ModItems.troll_forest.setRepairItem(new ItemStack(EnumTroll.FOREST.leather));
trilithiumCrystal = register(new MOBaseItem("trilithium_crystal")); quantumFoldManipulator = register(new MOBaseItem("quantum_fold_manipulator")); Preconditions.checkNotNull(TOOL_MATERIAL_TRITANIUM).setRepairItem(new ItemStack(tritanium_ingot)); Preconditions.checkNotNull(ARMOR_MATERIAL_TRITANIUM).setRepairItem(new ItemStack(tritanium_ingot)); MOLog.info("Finished registering items");
throw new IllegalArgumentException("You can't make tools out of non tool metals."); material = metal.getToolMetal(); int harvestLevel = material.getHarvestLevel(); float typeDamage; switch (type) setMaxDamage(material.getMaxUses()); efficiency = material.getEfficiency(); attackDamage = typeDamage * material.getAttackDamage();
ItemTool toolItem = (ItemTool) testTool.getItem(); if (testTool.getDestroySpeed(blockState) >= toolItem.toolMaterial.getEfficiency()) {
return false; } else if(nbtValue.hasKey("Material", Constants.NBT.TAG_STRING)){ Item.ToolMaterial material = Item.ToolMaterial.valueOf(nbtValue.getString("Material")); if (type.equalsIgnoreCase("Dagger")) { float hitTime = nbtValue.getFloat("Time");
if (stack.getItem() instanceof ItemSword) material = Item.ToolMaterial.valueOf(((ItemSword) stack.getItem()).getToolMaterialName()).getRepairItemStack(); material = Item.ToolMaterial.valueOf(((ItemTool) stack.getItem()).getToolMaterialName()).getRepairItemStack();
public ItemBowCore(ToolMaterial toolMaterial) { this.toolMaterial = toolMaterial; setMaxStackSize(1); setMaxDamage(toolMaterial.getMaxUses() + 325); addPropertyOverride(new ResourceLocation("pull"), new IItemPropertyGetter() { @SideOnly (Side.CLIENT) public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { if (entityIn == null) { return 0.0F; } else { ItemStack itemstack = entityIn.getActiveItemStack(); return !itemstack.isEmpty() && itemstack.getItem() instanceof ItemBowCore ? (float) (stack.getMaxItemUseDuration() - entityIn.getItemInUseCount()) / 20.0F : 0.0F; } } }); addPropertyOverride(new ResourceLocation("pulling"), new IItemPropertyGetter() { @SideOnly (Side.CLIENT) public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) { return entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F; } }); }
public ItemHammerCore(ToolMaterial toolMaterial) { super(4.0F, -3.4F, toolMaterial); addToolClass("pickaxe"); addToolClass("hammer"); setMaxDamage(toolMaterial.getMaxUses() * 2); effectiveBlocks.addAll(ItemPickaxe.EFFECTIVE_ON); effectiveMaterials.add(Material.IRON); effectiveMaterials.add(Material.ANVIL); effectiveMaterials.add(Material.ROCK); effectiveMaterials.add(Material.ICE); effectiveMaterials.add(Material.PACKED_ICE); effectiveMaterials.add(Material.GLASS); effectiveMaterials.add(Material.REDSTONE_LIGHT); if (harvestLevel > 0) { attackDamage = 10.0F; attackSpeed = -3.5F + (0.1F * harvestLevel); } else { attackDamage = 7.0F; attackSpeed = -3.4F + (0.1F * (int) (efficiency / 5)); } }
private static void registerEmeraldMaterial() { MaterialRegistry.emeraldArmorMaterial = EnumHelper.addArmorMaterial(emeraldName, Const.MODRES + emeraldName, diamondDurability + 30, //was -2 affects DURABILITY new int[] { ArmorMaterial.DIAMOND.getDamageReductionAmount(EntityEquipmentSlot.FEET), ArmorMaterial.DIAMOND.getDamageReductionAmount(EntityEquipmentSlot.LEGS), ArmorMaterial.DIAMOND.getDamageReductionAmount(EntityEquipmentSlot.CHEST), ArmorMaterial.DIAMOND.getDamageReductionAmount(EntityEquipmentSlot.HEAD) }, ArmorMaterial.GOLD.getEnchantability(), ArmorMaterial.DIAMOND.getSoundEvent(), ArmorMaterial.DIAMOND.getToughness() + 1);//was / 2 MaterialRegistry.emeraldArmorMaterial.repairMaterial = new ItemStack(Items.EMERALD); //max uses is durability ex The number of uses this material allows. //as of 1.9.4 : (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32) MaterialRegistry.emeraldToolMaterial = EnumHelper.addToolMaterial(emeraldName, ToolMaterial.DIAMOND.getHarvestLevel(), ToolMaterial.DIAMOND.getMaxUses(), //was - 261 ToolMaterial.DIAMOND.getEfficiency(), ToolMaterial.DIAMOND.getAttackDamage(), //was - 0.25F ToolMaterial.GOLD.getEnchantability()); MaterialRegistry.emeraldToolMaterial.setRepairItem(MaterialRegistry.emeraldArmorMaterial.repairMaterial); }
private static void registerPurpleMaterial() { ArmorMaterial mimicArmor = ArmorMaterial.DIAMOND; MaterialRegistry.powerArmorMaterial = EnumHelper.addArmorMaterial(MATERIALNAME, Const.MODRES + MATERIALNAME, diamondDurability * 2, // affects DURABILITY . 15 is the same as iron new int[] { mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.FEET) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.LEGS) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.CHEST) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.HEAD) + 2 }, mimicArmor.getEnchantability() / 4, mimicArmor.getSoundEvent(), mimicArmor.getToughness() + 2); MaterialRegistry.powerArmorMaterial.repairMaterial = new ItemStack(Blocks.OBSIDIAN); //now the tool material MaterialRegistry.powerToolMaterial = EnumHelper.addToolMaterial(MATERIALNAME, ToolMaterial.DIAMOND.getHarvestLevel(), ToolMaterial.DIAMOND.getMaxUses() * 4, //was - 261 ToolMaterial.DIAMOND.getEfficiency(), ToolMaterial.DIAMOND.getAttackDamage() * 8, //best draconic evolution sword is 35 base, so this is not that crazy ToolMaterial.GOLD.getEnchantability() * 2); MaterialRegistry.powerToolMaterial.setRepairItem(MaterialRegistry.powerArmorMaterial.repairMaterial); }
@SubscribeEvent public static void registerRecipes(RegistryEvent.Register<IRecipe> event) { for (int i = 0; i < ItemSoulGem.names.length; i++) { for (EnumDemonWillType willType : EnumDemonWillType.values()) { ItemStack baseGemStack = new ItemStack(RegistrarBloodMagicItems.SOUL_GEM, 1, i); ItemStack newGemStack = new ItemStack(RegistrarBloodMagicItems.SOUL_GEM, 1, i); ((ItemSoulGem) RegistrarBloodMagicItems.SOUL_GEM).setCurrentType(willType, newGemStack); ShapelessOreRecipe shapeless = new ShapelessOreRecipe(new ResourceLocation(BloodMagic.MODID, "soul_gem"), newGemStack, baseGemStack, willType.getStack()); event.getRegistry().register(shapeless.setRegistryName("soul_gem_" + willType.getName())); } } OreDictionary.registerOre("dustIron", ComponentTypes.SAND_IRON.getStack()); OreDictionary.registerOre("dustGold", ComponentTypes.SAND_GOLD.getStack()); OreDictionary.registerOre("dustCoal", ComponentTypes.SAND_COAL.getStack()); PluginUtil.handlePluginStep(PluginUtil.RegistrationStep.RECIPE_REGISTER); RegistrarBloodMagicItems.SOUL_TOOL_MATERIAL.setRepairItem(EnumDemonWillType.DEFAULT.getStack()); }
@Override public float getWorkEffectiveness(WorkType type) { if (canWorkAt(type)) { float effectiveness = 1.f + this.getLevelingStats().getLevel() * 0.05F; Item item = getHeldItemMainhand().getItem(); if (item instanceof ItemTool) { effectiveness += ((ItemTool) item).toolMaterial.getEfficiency() * 0.05f; } else if (item instanceof ItemHoe) { ToolMaterial mat = ToolMaterial.valueOf(((ItemHoe) item).getMaterialName()); effectiveness += mat.getEfficiency() * 0.05f; } else if (item instanceof ItemHammer) { effectiveness += ((ItemHammer) item).getMaterial().getEfficiency() * 0.05f; } else if (item instanceof ItemQuill) { effectiveness += ((ItemQuill) item).getMaterial().getEfficiency() * 0.05f; } return effectiveness; } return 0.F; }
/** * Evaluate the material cost of a possible tool. The priority matches the * listed order in the Item.ToolMaterial enum. * * @param itemStack a possibly empty ItemStack * @return values range from -1 to 4 */ private int getMaterialCost(ItemStack itemStack) { if (itemStack.getItem() instanceof ItemTool) { ItemTool tool = (ItemTool) itemStack.getItem(); return ToolMaterial.valueOf(tool.getToolMaterialName()).ordinal(); } else { return -1; } }
@Override public float getDestroySpeed(@Nonnull ItemStack stack, @Nonnull IBlockState state) { if (state.getMaterial() == Material.GLASS) { return toolMaterial.getEfficiency(); } if (useObsidianEffeciency(stack, state)) { return toolMaterial.getEfficiency() + DarkSteelConfig.pickEfficiencyBoostWhenPowered.get() + DarkSteelConfig.pickEfficiencyObsidian.get(); } if (isToolEffective(state, stack)) { if (DarkSteelConfig.pickPowerUsePerDamagePoint.get() <= 0 ? EnergyUpgradeManager.itemHasAnyPowerUpgrade(stack) : EnergyUpgradeManager.getEnergyStored(stack) > 0) { return toolMaterial.getEfficiency() + DarkSteelConfig.pickEfficiencyBoostWhenPowered.get(); } return toolMaterial.getEfficiency(); } return super.getDestroySpeed(stack, state); }
public void setEnchantability(ToolMaterial material) { this.enchantability = material.getEnchantability(); }
public VampirismItemWeapon(String regName, Item.ToolMaterial material, float attackSpeedModifier) { this(regName, material, attackSpeedModifier, 3F + material.getAttackDamage()); }
public boolean attackEntityFrom(DamageSource damageSource, int inputDamage) { Entity entity = damageSource.getTrueSource(); int damage = inputDamage; if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; ItemStack itemstack = player.getHeldItem(getActiveHand()); Item item = itemstack.getItem(); if (item == Items.GOLDEN_SWORD || item == Items.GOLDEN_AXE || item == Items.GOLDEN_SHOVEL || item == Items.GOLDEN_HOE || item == Items.GOLDEN_PICKAXE) { damage = 14; damage = (int) (damage + Item.ToolMaterial.GOLD.getAttackDamage()); } } return super.attackEntityFrom(damageSource, damage); }