@Override public boolean isModuleAllowed(IModule iModule, ItemStack itemStack) { boolean allowed = false; if (itemStack.getItem() instanceof ItemBrassArmor) { ItemBrassArmor brassArmor = (ItemBrassArmor) itemStack.getItem(); if (iModule instanceof IArmorModule) { IArmorModule iArmorModule = (IArmorModule) iModule; if ((iArmorModule.getApplicablePiece() == -1) || (iArmorModule.getApplicablePiece() == brassArmor.armorType)) { ArrayList<IModule> moduleIncompatibilities = ModuleRegistry.getModuleIncompatibilities(iModule.getModuleId()); if ((moduleIncompatibilities == null) || Collections.disjoint( IModuleContainer.Helper.getAllModulesEquipped(itemStack), moduleIncompatibilities)) { if (!IModuleContainer.Helper.getAllModulesEquipped(itemStack).contains(iModule)) { allowed = true; } } } } } return allowed; }
public void onArmorUnequipped(World world, EntityPlayer player, ItemStack armor) { NBTTagCompound nbt = getOrCreateTagCompound(armor); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null)) { module.onArmorUnequipped(world, player); } } }
@Override @Optional.Method(modid = "Thaumcraft") public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) { NBTTagCompound nbt = getOrCreateTagCompound(itemstack); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null) && (module.getArmorEffectType() == EnumArmorEffectType.SPECIAL)) { if (module == InitItems.itemThaumicMonocle) return true; } } return false; }
@Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { NBTTagCompound nbt = getOrCreateTagCompound(armor); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null) && (module.getArmorEffectType() == EnumArmorEffectType.DEFENSIVE)) { IDefensiveArmorModule defmodule = (IDefensiveArmorModule) module; return defmodule.getArmorToDisplay(); } } return 0; }
@SuppressWarnings("all") @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean flag) { if (stack != null) { list.add("Modules:"); NBTTagCompound nbt = getOrCreateTagCompound(stack); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if (module != null) { list.add(module.getName()); } } } }
@Override public void onArmorTick(World world, EntityPlayer player, ItemStack is) { // int combinedModuleWeight = 0; NBTTagCompound nbt = getOrCreateTagCompound(is); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null) && (module.getArmorEffectType() == EnumArmorEffectType.ONTICK)) { module.applyModuleEffect(world, player, is); // combinedModuleWeight += module.getModuleWeight(); } } // if(this.getSlownessLevelFromWeight(combinedModuleWeight) >= 1) // player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5, // this.getSlownessLevelFromWeight(combinedModuleWeight), true)); }
@Override @SideOnly(Side.CLIENT) public void renderHelmetOverlay( ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { NBTTagCompound nbt = getOrCreateTagCompound(stack); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null) && (module.getArmorEffectType() == EnumArmorEffectType.HUD)) { module.applyModuleEffect(player.getEntityWorld(), player, stack); } } }
@Override public ArmorProperties getProperties( EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) { int priority = 0; int absorbRatio = 0; int absorbMax = 0; NBTTagCompound nbt = getOrCreateTagCompound(armor); for (int i = 0; i < nbt.getInteger("moduleCount"); i++) { IArmorModule module = (IArmorModule) ModuleRegistry.getModule(nbt.getString("module" + i)); if ((module != null) && (module.getArmorEffectType() == EnumArmorEffectType.DEFENSIVE)) { IDefensiveArmorModule defmodule = (IDefensiveArmorModule) module; absorbRatio = defmodule.getDamageAbsorbRatio(); absorbMax = defmodule.getMaxDamageAbsorb(); } if (source.isUnblockable()) { absorbMax = 0; absorbRatio = 0; } } return new ArmorProperties(priority, absorbRatio, absorbMax); }
public ItemFreezeBoots() { super(); ModuleRegistry.registerModule(this); this.setMaxStackSize(1); this.setCreativeTab(Steamcraft.tabSC2); }