/* * spotless:off * KubaTech - Gregtech Addon * Copyright (C) 2022 - 2024 kuba6000 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * spotless:on */ package kubatech.loaders; import static gregtech.api.enums.Mods.DraconicEvolution; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.stream.Collectors; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import com.kuba6000.mobsinfo.api.utils.ItemID; import cpw.mods.fml.common.registry.GameRegistry; import kubatech.api.enums.ItemList; import kubatech.loaders.item.items.TeaUltimate; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.ThaumcraftApiHelper; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.crafting.InfusionRecipe; import thaumcraft.api.research.ResearchCategories; import thaumcraft.api.research.ResearchItem; import thaumcraft.api.research.ResearchPage; public class TCLoader { public static final String TCCategoryKey = "KUBATECH"; public static void init() { /* * ResearchCategories.registerCategory( * TCCategoryKey, * new ResourceLocation(Tags.MODID, "textures/gui/green_tea.png"), * new ResourceLocation("thaumcraft", "textures/gui/gui_researchback.png")); */ if (!NewHorizonsCoreMod.isModLoaded() || !DraconicEvolution.isModLoaded()) return; registerRecipe(); registerResearch(); } private static InfusionRecipe ultimateTeaRecipe = null; @SuppressWarnings("unchecked") private static void registerRecipe() { if (ultimateTeaRecipe != null) return; final ItemStack[] components = new ItemStack[] { // ItemList.LegendaryBlackTea.get(1), // ItemList.LegendaryButterflyTea.get(1), ItemList.LegendaryEarlGrayTea.get(1), // MApiary ItemList.LegendaryGreenTea.get(1), // EIG // ItemList.LegendaryLemonTea.get(1), // ItemList.LegendaryMilkTea.get(1), // ItemList.LegendaryOolongTea.get(1), ItemList.LegendaryPeppermintTea.get(1), // HTGR ItemList.LegendaryPuerhTea.get(1), // EEC // ItemList.LegendaryRedTea.get(1), // ItemList.LegendaryWhiteTea.get(1), ItemList.LegendaryYellowTea.get(1), // IApiary ItemList.BlackTea.get(1), ItemList.EarlGrayTea.get(1), ItemList.GreenTea.get(1), ItemList.LemonTea.get(1), ItemList.MilkTea.get(1), ItemList.OolongTea.get(1), ItemList.PeppermintTea.get(1), ItemList.PuerhTea.get(1), ItemList.WhiteTea.get(1), ItemList.YellowTea.get(1) }; final HashSet componentsHashed = Arrays.stream(components) .map(stack -> ItemID.createNoCopy(stack, true, false, true)) .collect(Collectors.toCollection(HashSet::new)); // noinspection unchecked ThaumcraftApi.getCraftingRecipes() .add( ultimateTeaRecipe = new InfusionRecipe( "KT_UltimateTea", ItemList.LegendaryUltimateTea.get(1), 10, new AspectList().add(Aspect.MAGIC, 100) .add(Aspect.HEAL, 100) .add(Aspect.PLANT, 100) .add(Aspect.EXCHANGE, 100), GameRegistry.findItemStack("DraconicEvolution", "dezilsMarshmallow", 1), components) { @Override public boolean matches(ArrayList input, ItemStack central, World world, EntityPlayer player) { if (!central.isItemEqual(getRecipeInput())) return false; if (!ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), this.research)) return false; if (componentsHashed.size() > input.size()) return false; HashSet hashedInputs = input.stream() .map(stack -> ItemID.createNoCopy(stack, true, false, true)) .collect(Collectors.toCollection(HashSet::new)); return hashedInputs.containsAll(componentsHashed); } }); } private static ResearchItem ultimateTeaResearch = null; private static void registerResearch() { if (ultimateTeaResearch == null) { ultimateTeaResearch = new ResearchItem( "KT_UltimateTea", "NEWHORIZONS" /* TCCategoryKey */, new AspectList().add(Aspect.MAGIC, 1) .add(Aspect.HEAL, 1) .add(Aspect.PLANT, 1) .add(Aspect.EXCHANGE, 1), -2, 4, 2, ItemList.LegendaryUltimateTea.get(1)) { @Override public String getName() { return TeaUltimate.getUltimateTeaDisplayName(super.getName()); } }; ultimateTeaResearch.setPages(new ResearchPage("KT.research.ultimatetea") { @Override public String getTranslatedText() { return TeaUltimate.getUltimateTeaDisplayName(super.getTranslatedText()); } }, new ResearchPage(ultimateTeaRecipe)); ultimateTeaResearch.setParents("INFUSION", "DEZILSMARSHMALLOW"); ThaumcraftApi.addWarpToResearch("KT_UltimateTea", 20); } ResearchCategories.addResearch(ultimateTeaResearch); } }