/** * Give maxed-out enchantments books from the enchantments list. * Used by battlegear creative tab for its display list * * @return list containing the enchantment books */ public Collection<ItemStack> getEnchantmentBooks() { Collection<ItemStack> list = new ArrayList<ItemStack>(enchants.size()); for(Enchantment enchantment:enchants){ list.add(Items.ENCHANTED_BOOK.getEnchantedItemStack(new EnchantmentData(enchantment, enchantment.getMaxLevel()))); } return list; }
private void setResultingEnchantmentBook(TilePurifier tile, Map<Enchantment, Integer> enchantments, Enchantment enchantment) { tile.setAdditionalItem(ItemEnchantedBook.getEnchantedItemStack( new EnchantmentData(enchantment, enchantments.get(enchantment)))); }
public ItemStack getEnchantedBook(EnchantmentData enchantmentData) { Enchantment enchantment = enchantmentData.enchantment; ResourceLocation registryName = enchantment.getRegistryName(); if (registryName == null) { throw new IllegalArgumentException("Enchantment has no registry name: " + enchantment.getName()); } return cache.computeIfAbsent(registryName, enchantmentData.enchantmentLevel, () -> ItemEnchantedBook.getEnchantedItemStack(enchantmentData)); }
public static void addAllBooks(Enchantment enchantment, List<ItemStack> items) { for (int i = enchantment.getMinLevel(); i <= enchantment.getMaxLevel(); i++) items.add(ItemEnchantedBook.getEnchantedItemStack(new EnchantmentData(enchantment, i))); } }
public static void addDefaultEnchantmentRecipe(ItemStack input, String enchantName, int tier) { if (tier < 0 || tier > 4) { return; } Enchantment enchant = Enchantment.getEnchantmentByLocation(enchantName); if (enchant == null) { return; } addRecipe(DEFAULT_ENERGY[tier], ITEM_BOOK, input, ItemEnchantedBook.getEnchantedItemStack(new EnchantmentData(enchant, 1)), DEFAULT_EXPERIENCE[tier], Type.STANDARD); // if (enchant.getMaxLevel() > 1) { // addRecipe(DEFAULT_ENERGY[Math.min(tier + 1, 4)] * 3, ITEM_BOOK2, input, ItemEnchantedBook.getEnchantedItemStack(new EnchantmentData(enchant, enchant.getMaxLevel())), DEFAULT_EXPERIENCE[Math.min(tier + 1, 4)], Type.EMPOWERED); // } }
public static void refresh() { Map<List<ComparableItemStackValidatedNBT>, EnchanterRecipe> tempMap = new Object2ObjectOpenHashMap<>(recipeMap.size()); Set<ComparableItemStackValidatedNBT> tempSet = new ObjectOpenHashSet<>(); EnchanterRecipe tempRecipe; for (Entry<List<ComparableItemStackValidatedNBT>, EnchanterRecipe> entry : recipeMap.entrySet()) { tempRecipe = entry.getValue(); ComparableItemStackValidatedNBT primary = convertInput(tempRecipe.primaryInput); ComparableItemStackValidatedNBT secondary = convertInput(tempRecipe.secondaryInput); if (!tempRecipe.enchantName.isEmpty() && tempRecipe.output.getItem() == Items.ENCHANTED_BOOK) { Enchantment enchant = Enchantment.getEnchantmentByLocation(tempRecipe.enchantName); if (enchant != null) { tempRecipe = new EnchanterRecipe(tempRecipe.primaryInput, tempRecipe.secondaryInput, ItemEnchantedBook.getEnchantedItemStack(new EnchantmentData(enchant, 1)), tempRecipe.experience, tempRecipe.energy, tempRecipe.type); } } tempMap.put(asList(primary, secondary), tempRecipe); tempSet.add(primary); tempSet.add(secondary); } recipeMap.clear(); recipeMap = tempMap; validationSet.clear(); validationSet = tempSet; Set<ComparableItemStackValidatedNBT> tempSet2 = new ObjectOpenHashSet<>(); for (ComparableItemStackValidatedNBT entry : lockSet) { ComparableItemStackValidatedNBT lock = convertInput(new ItemStack(entry.item, entry.stackSize, entry.metadata)); tempSet2.add(lock); } lockSet.clear(); lockSet = tempSet2; }
public RecipeUpgradeWithEnchantedBook(String enchantmentId, int enchantmentLevel, int upgradeId) { super(RS.ID, 3, 3, NonNullList.from(Ingredient.EMPTY, Ingredient.fromStacks(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)), Ingredient.fromStacks(ItemEnchantedBook.getEnchantedItemStack(new EnchantmentData(Enchantment.getEnchantmentByLocation(enchantmentId), enchantmentLevel))), Ingredient.fromStacks(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)), Ingredient.fromStacks(new ItemStack(Blocks.BOOKSHELF)), Ingredient.fromStacks(new ItemStack(RSItems.UPGRADE)), Ingredient.fromStacks(new ItemStack(Blocks.BOOKSHELF)), Ingredient.fromStacks(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)), Ingredient.fromStacks(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)), Ingredient.fromStacks(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)) ), new ItemStack(RSItems.UPGRADE, 1, upgradeId)); this.enchant = new EnchantmentData(Enchantment.getEnchantmentByLocation(enchantmentId), enchantmentLevel); }