Search in sources :

Example 1 with ItemATSword

use of toolbox.common.items.tools.ItemATSword in project Adventurers-Toolbox by the-realest-stu.

the class SpecialToolAbilityHandler method onTooltip.

@SideOnly(Side.CLIENT)
@SubscribeEvent(priority = EventPriority.HIGH)
public void onTooltip(ItemTooltipEvent event) {
    if (event.getItemStack() != null && event.getEntityPlayer() != null) {
        ItemStack stack = event.getItemStack();
        Item item = stack.getItem();
        if (item instanceof ItemATAxe || item instanceof ItemATDagger || item instanceof ItemATHammer || item instanceof ItemATHandpick || item instanceof ItemATHoe || item instanceof ItemATMace || item instanceof ItemATPickaxe || item instanceof ItemATShovel || item instanceof ItemATSword) {
            boolean shift = GameSettings.isKeyDown(Minecraft.getMinecraft().gameSettings.keyBindSneak);
            boolean advanced = event.getFlags().isAdvanced();
            List<String> tooltip = event.getToolTip();
            tooltip.clear();
            String s = stack.getDisplayName();
            s = s + TextFormatting.RESET;
            if (advanced) {
                String s1 = "";
                if (!s.isEmpty()) {
                    s = s + " (";
                    s1 = ")";
                }
                int i = Item.getIdFromItem(item);
                if (stack.getHasSubtypes()) {
                    s = s + String.format("#%04d/%d%s", i, stack.getItemDamage(), s1);
                } else {
                    s = s + String.format("#%04d%s", i, s1);
                }
            }
            tooltip.add(s);
            int i1 = 0;
            if (shift) {
                tooltip.add("");
                if (item instanceof IHeadTool) {
                    HeadMaterial mat = IHeadTool.getHeadMat(stack);
                    tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.head.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                }
                if (item instanceof IBladeTool) {
                    HeadMaterial mat = IBladeTool.getBladeMat(stack);
                    tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.blade.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                }
                if (item instanceof ICrossguardTool) {
                    HeadMaterial mat = ICrossguardTool.getCrossguardMat(stack);
                    tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.crossguard.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                }
                if (item instanceof IHaftTool) {
                    HaftMaterial mat = IHaftTool.getHaftMat(stack);
                    tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.haft.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                }
                if (item instanceof IHandleTool) {
                    HandleMaterial mat = IHandleTool.getHandleMat(stack);
                    tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.handle.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                }
                if (item instanceof IAdornedTool) {
                    AdornmentMaterial mat = IAdornedTool.getAdornmentMat(stack);
                    if (!mat.getName().equals("null")) {
                        tooltip.add(TextFormatting.YELLOW + " " + I18n.translateToLocal("desc.adornment.name") + ": " + I18n.translateToLocal("guide.mat." + mat.getName() + ".name"));
                    }
                }
                tooltip.add("");
            }
            if (stack.hasTagCompound() && stack.getTagCompound().hasKey("HideFlags", 99)) {
                i1 = stack.getTagCompound().getInteger("HideFlags");
            }
            if ((i1 & 32) == 0) {
                item.addInformation(stack, event.getEntityPlayer() == null ? null : event.getEntityPlayer().world, tooltip, event.getFlags());
            }
            if (item instanceof ItemSword && isVoidTool(stack) && CommonProxy.thaumcraftLoaded) {
                tooltip.add(TextFormatting.GOLD + I18n.translateToLocal("enchantment.special.sapless"));
            }
            if (stack.hasTagCompound()) {
                if ((i1 & 1) == 0) {
                    NBTTagList nbttaglist = stack.getEnchantmentTagList();
                    for (int j = 0; j < nbttaglist.tagCount(); ++j) {
                        NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(j);
                        int k = nbttagcompound.getShort("id");
                        int l = nbttagcompound.getShort("lvl");
                        Enchantment enchantment = Enchantment.getEnchantmentByID(k);
                        if (enchantment != null) {
                            tooltip.add(enchantment.getTranslatedName(l));
                        }
                    }
                }
                if (stack.getTagCompound().hasKey("display", 10)) {
                    NBTTagCompound nbttagcompound1 = stack.getTagCompound().getCompoundTag("display");
                    if (nbttagcompound1.getTagId("Lore") == 9) {
                        NBTTagList nbttaglist3 = nbttagcompound1.getTagList("Lore", 8);
                        if (!nbttaglist3.hasNoTags()) {
                            for (int l1 = 0; l1 < nbttaglist3.tagCount(); ++l1) {
                                tooltip.add(TextFormatting.DARK_PURPLE + "" + TextFormatting.ITALIC + nbttaglist3.getStringTagAt(l1));
                            }
                        }
                    }
                }
            }
            Multimap<String, AttributeModifier> multimap = stack.getAttributeModifiers(EntityEquipmentSlot.MAINHAND);
            if ((i1 & 2) == 0) {
                if (!tooltip.get(tooltip.size() - 1).isEmpty()) {
                    tooltip.add("");
                }
                if (item instanceof ItemATPickaxe || item instanceof ItemATHandpick || item instanceof ItemATHammer || item instanceof ItemATAxe || item instanceof ItemATShovel) {
                    int harvestLvl = -1;
                    float efficiency = 0F;
                    if (item instanceof ItemATPickaxe) {
                        harvestLvl = ((ItemATPickaxe) item).getHarvestLevel(stack);
                        efficiency = ((ItemATPickaxe) item).getEfficiency(stack);
                    } else if (item instanceof ItemATHandpick) {
                        harvestLvl = ((ItemATHandpick) item).getHarvestLevel(stack);
                        efficiency = ((ItemATHandpick) item).getEfficiency(stack);
                    } else if (item instanceof ItemATHammer) {
                        harvestLvl = ((ItemATHammer) item).getHarvestLevel(stack);
                        efficiency = ((ItemATHammer) item).getEfficiency(stack);
                    } else if (item instanceof ItemATAxe) {
                        harvestLvl = ((ItemATAxe) item).getHarvestLevel(stack);
                        efficiency = ((ItemATAxe) item).getEfficiency(stack);
                    } else if (item instanceof ItemATShovel) {
                        harvestLvl = ((ItemATShovel) item).getHarvestLevel(stack);
                        efficiency = ((ItemATShovel) item).getEfficiency(stack);
                    }
                    tooltip.add(I18n.translateToLocal("desc.harvest_level.name") + ": " + harvestLvl);
                    tooltip.add(I18n.translateToLocal("desc.efficiency.name") + ": " + ItemStack.DECIMALFORMAT.format(efficiency));
                }
                for (Entry<String, AttributeModifier> entry : multimap.entries()) {
                    AttributeModifier attributemodifier = entry.getValue();
                    double d0 = attributemodifier.getAmount();
                    if (event.getEntityPlayer() != null && (shift || item instanceof ItemSword)) {
                        if (attributemodifier.getID() == ItemBase.getAttackDamageUUID()) {
                            d0 = d0 + event.getEntityPlayer().getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getBaseValue();
                            d0 = d0 + (double) EnchantmentHelper.getModifierForCreature(stack, EnumCreatureAttribute.UNDEFINED);
                            double d1 = d0 * 100.0D;
                            ;
                            if (attributemodifier.getOperation() != 1 && attributemodifier.getOperation() != 2) {
                                d1 = d0;
                            }
                            tooltip.add(I18n.translateToLocal("desc.attack_damage.name") + ": " + ItemStack.DECIMALFORMAT.format(d1));
                        } else if (attributemodifier.getID() == ItemBase.getAttackSpeedUUID()) {
                            d0 += event.getEntityPlayer().getEntityAttribute(SharedMonsterAttributes.ATTACK_SPEED).getBaseValue();
                            double d1 = d0 * 100.0D;
                            ;
                            if (attributemodifier.getOperation() != 1 && attributemodifier.getOperation() != 2) {
                                d1 = d0;
                            }
                            tooltip.add(I18n.translateToLocal("desc.attack_speed.name") + ": " + ItemStack.DECIMALFORMAT.format(d1));
                        }
                    }
                }
                if (shift) {
                    tooltip.add(I18n.translateToLocal("desc.enchantability.name") + ": " + item.getItemEnchantability(stack));
                }
                if (stack.isItemDamaged() && stack.isItemStackDamageable()) {
                    tooltip.add(I18n.translateToLocal("desc.durability.name") + ": " + (stack.getMaxDamage() - stack.getItemDamage()) + " / " + ItemStack.DECIMALFORMAT.format(stack.getMaxDamage()));
                } else if (stack.isItemStackDamageable()) {
                    tooltip.add(I18n.translateToLocal("desc.durability.name") + ": " + stack.getMaxDamage());
                }
            }
            if (stack.hasTagCompound() && stack.getTagCompound().getBoolean("Unbreakable") && (i1 & 4) == 0) {
                tooltip.add(TextFormatting.BLUE + I18n.translateToLocal("item.unbreakable"));
            }
            if (stack.hasTagCompound() && stack.getTagCompound().hasKey("CanDestroy", 9) && (i1 & 8) == 0) {
                NBTTagList nbttaglist1 = stack.getTagCompound().getTagList("CanDestroy", 8);
                if (!nbttaglist1.hasNoTags()) {
                    tooltip.add("");
                    tooltip.add(TextFormatting.GRAY + I18n.translateToLocal("item.canBreak"));
                    for (int j1 = 0; j1 < nbttaglist1.tagCount(); ++j1) {
                        Block block = Block.getBlockFromName(nbttaglist1.getStringTagAt(j1));
                        if (block != null) {
                            tooltip.add(TextFormatting.DARK_GRAY + block.getLocalizedName());
                        } else {
                            tooltip.add(TextFormatting.DARK_GRAY + "missingno");
                        }
                    }
                }
            }
            if (advanced) {
                tooltip.add(TextFormatting.DARK_GRAY + ((ResourceLocation) Item.REGISTRY.getNameForObject(item)).toString());
                tooltip.add(TextFormatting.DARK_GRAY + I18n.translateToLocalFormatted("item.nbt_tags", stack.hasTagCompound() ? stack.getTagCompound().getKeySet().size() : 0));
            }
        }
    }
}
Also used : AdornmentMaterial(api.materials.AdornmentMaterial) ItemATShovel(toolbox.common.items.tools.ItemATShovel) ItemATSword(toolbox.common.items.tools.ItemATSword) IHaftTool(toolbox.common.items.tools.IHaftTool) ItemATHammer(toolbox.common.items.tools.ItemATHammer) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ICrossguardTool(toolbox.common.items.tools.ICrossguardTool) NBTTagList(net.minecraft.nbt.NBTTagList) Item(net.minecraft.item.Item) EntityItem(net.minecraft.entity.item.EntityItem) ItemATAxe(toolbox.common.items.tools.ItemATAxe) HandleMaterial(api.materials.HandleMaterial) ResourceLocation(net.minecraft.util.ResourceLocation) IHeadTool(toolbox.common.items.tools.IHeadTool) ItemSword(net.minecraft.item.ItemSword) ItemATHoe(toolbox.common.items.tools.ItemATHoe) ItemATPickaxe(toolbox.common.items.tools.ItemATPickaxe) HeadMaterial(api.materials.HeadMaterial) IBladeTool(toolbox.common.items.tools.IBladeTool) AttributeModifier(net.minecraft.entity.ai.attributes.AttributeModifier) IHandleTool(toolbox.common.items.tools.IHandleTool) Block(net.minecraft.block.Block) ItemStack(net.minecraft.item.ItemStack) ItemATMace(toolbox.common.items.tools.ItemATMace) Enchantment(net.minecraft.enchantment.Enchantment) IAdornedTool(toolbox.common.items.tools.IAdornedTool) ItemATDagger(toolbox.common.items.tools.ItemATDagger) ItemATHandpick(toolbox.common.items.tools.ItemATHandpick) HaftMaterial(api.materials.HaftMaterial) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 2 with ItemATSword

use of toolbox.common.items.tools.ItemATSword in project Adventurers-Toolbox by the-realest-stu.

the class ModItems method registerItems.

@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
    event.getRegistry().register(new ItemRock());
    if (!Config.DISABLED_TOOLS.contains("pickaxe")) {
        event.getRegistry().register(new ItemToolHead("pickaxe_head"));
        ItemSchematic.subtypes.add("pickaxe_head");
    }
    if (!Config.DISABLED_TOOLS.contains("axe")) {
        event.getRegistry().register(new ItemToolHead("axe_head"));
        ItemSchematic.subtypes.add("axe_head");
    }
    if (!Config.DISABLED_TOOLS.contains("shovel")) {
        event.getRegistry().register(new ItemToolHead("shovel_head"));
        ItemSchematic.subtypes.add("shovel_head");
    }
    if (!Config.DISABLED_TOOLS.contains("hoe")) {
        event.getRegistry().register(new ItemToolHead("hoe_head"));
        ItemSchematic.subtypes.add("hoe_head");
    }
    if (!Config.DISABLED_TOOLS.contains("handpick")) {
        event.getRegistry().register(new ItemToolHead("handpick_head"));
        ItemSchematic.subtypes.add("handpick_head");
    }
    if (!Config.DISABLED_TOOLS.contains("hammer")) {
        event.getRegistry().register(new ItemToolHead("hammer_head"));
        ItemSchematic.subtypes.add("hammer_head");
    }
    if (!Config.DISABLED_TOOLS.contains("sword")) {
        event.getRegistry().register(new ItemToolHead("sword_blade"));
        ItemSchematic.subtypes.add("sword_blade");
        event.getRegistry().register(new ItemToolHead("sword_crossguard"));
        ItemSchematic.subtypes.add("sword_crossguard");
    }
    if (!Config.DISABLED_TOOLS.contains("dagger")) {
        event.getRegistry().register(new ItemToolHead("dagger_blade"));
        ItemSchematic.subtypes.add("dagger_blade");
    }
    if (!Config.DISABLED_TOOLS.contains("mace")) {
        event.getRegistry().register(new ItemToolHead("mace_head"));
        ItemSchematic.subtypes.add("mace_head");
    }
    if (Config.ENABLE_SCHEMATICS)
        event.getRegistry().register(new ItemSchematic());
    event.getRegistry().register(new ItemToolHandle());
    event.getRegistry().register(new ItemGuideBook());
    if (Config.ENABLE_TINKERS_COMPAT)
        event.getRegistry().register(new ItemCast());
    if (!Config.DISABLED_TOOLS.contains("pickaxe"))
        event.getRegistry().register(new ItemATPickaxe());
    if (!Config.DISABLED_TOOLS.contains("axe"))
        event.getRegistry().register(new ItemATAxe());
    if (!Config.DISABLED_TOOLS.contains("shovel"))
        event.getRegistry().register(new ItemATShovel());
    if (!Config.DISABLED_TOOLS.contains("hoe"))
        event.getRegistry().register(new ItemATHoe());
    if (!Config.DISABLED_TOOLS.contains("handpick"))
        event.getRegistry().register(new ItemATHandpick());
    if (!Config.DISABLED_TOOLS.contains("hammer"))
        event.getRegistry().register(new ItemATHammer());
    if (!Config.DISABLED_TOOLS.contains("sword"))
        event.getRegistry().register(new ItemATSword());
    if (!Config.DISABLED_TOOLS.contains("dagger"))
        event.getRegistry().register(new ItemATDagger());
    if (!Config.DISABLED_TOOLS.contains("mace"))
        event.getRegistry().register(new ItemATMace());
}
Also used : ItemATShovel(toolbox.common.items.tools.ItemATShovel) ItemATHoe(toolbox.common.items.tools.ItemATHoe) ItemATSword(toolbox.common.items.tools.ItemATSword) ItemATPickaxe(toolbox.common.items.tools.ItemATPickaxe) ItemATHammer(toolbox.common.items.tools.ItemATHammer) ItemToolHandle(toolbox.common.items.parts.ItemToolHandle) ItemCast(toolbox.compat.tconstruct.ItemCast) ItemToolHead(toolbox.common.items.parts.ItemToolHead) ItemATAxe(toolbox.common.items.tools.ItemATAxe) ItemATMace(toolbox.common.items.tools.ItemATMace) ItemATDagger(toolbox.common.items.tools.ItemATDagger) ItemATHandpick(toolbox.common.items.tools.ItemATHandpick) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 ItemATAxe (toolbox.common.items.tools.ItemATAxe)2 ItemATDagger (toolbox.common.items.tools.ItemATDagger)2 ItemATHammer (toolbox.common.items.tools.ItemATHammer)2 ItemATHandpick (toolbox.common.items.tools.ItemATHandpick)2 ItemATHoe (toolbox.common.items.tools.ItemATHoe)2 ItemATMace (toolbox.common.items.tools.ItemATMace)2 ItemATPickaxe (toolbox.common.items.tools.ItemATPickaxe)2 ItemATShovel (toolbox.common.items.tools.ItemATShovel)2 ItemATSword (toolbox.common.items.tools.ItemATSword)2 AdornmentMaterial (api.materials.AdornmentMaterial)1 HaftMaterial (api.materials.HaftMaterial)1 HandleMaterial (api.materials.HandleMaterial)1 HeadMaterial (api.materials.HeadMaterial)1 Block (net.minecraft.block.Block)1 Enchantment (net.minecraft.enchantment.Enchantment)1 AttributeModifier (net.minecraft.entity.ai.attributes.AttributeModifier)1 EntityItem (net.minecraft.entity.item.EntityItem)1 Item (net.minecraft.item.Item)1 ItemStack (net.minecraft.item.ItemStack)1