package sourcecoded.quantum.crafting.vacuum; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import sourcecoded.quantum.api.CraftingContext; import sourcecoded.quantum.api.event.crafting.VacuumCraftingEvent; import sourcecoded.quantum.api.vacuum.IVacuumRecipe; import sourcecoded.quantum.api.vacuum.Instability; import sourcecoded.quantum.api.vacuum.VacuumRegistry; import sourcecoded.quantum.registry.QABlocks; import sourcecoded.quantum.registry.QAEnchant; import sourcecoded.quantum.registry.QAItems; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; public class VacuumEnchantRange implements IVacuumRecipe { int tier; public static ArrayList<VacuumEnchantRange> recipeList = new ArrayList<VacuumEnchantRange>(); public static void registerAll() { for (int i = QAEnchant.RANGE.get().getMinLevel(); i <= QAEnchant.RANGE.get().getMaxLevel(); i++) { VacuumEnchantRange recipe = new VacuumEnchantRange(i); recipeList.add(recipe); VacuumRegistry.addRecipe(recipe); } } public VacuumEnchantRange(int tier) { this.tier = tier; } @Override public List<ItemStack> getIngredients() { ArrayList<ItemStack> stacks = new ArrayList<ItemStack>(); stacks.add(new ItemStack(Items.book)); for (int i = 0; i < tier; i++) stacks.add(new ItemStack(QAItems.RIFT_MAGNET.getItem())); return stacks; } @Override public List<ItemStack> getCatalysts() { ArrayList<ItemStack> stacks = new ArrayList<ItemStack>(); stacks.add(new ItemStack(Items.book)); stacks.add(new ItemStack(Blocks.hopper)); stacks.add(new ItemStack(Items.ender_pearl, tier)); return stacks; } @Override public List<ItemStack> getOutputs() { ItemStack[] items = new ItemStack[] { new ItemStack(Items.enchanted_book) }; HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(QAEnchant.RANGE.get().effectId, tier); EnchantmentHelper.setEnchantments(map, items[0]); return Arrays.asList(items); } @Override public int getVacuumEnergyStart() { return 20000 * tier; } @Override public int getVacuumEnergyPerItem() { return 5000; } @Override public Instability getInstabilityLevel() { return Instability.DISMAL; } @Override public CraftingContext getContext() { return new CraftingContext().setOreDictionary(false).setRespectsNBT(false).setRespectsMeta(true); } }