TechReborn/ToAddBack/1.9/jei/TechRebornJeiPlugin.java

225 lines
14 KiB
Java
Raw Normal View History

2015-11-29 11:42:34 +01:00
package techreborn.compat.jei;
import mezz.jei.api.BlankModPlugin;
2015-12-31 05:09:06 +01:00
import mezz.jei.api.IGuiHelper;
import mezz.jei.api.IJeiHelpers;
import mezz.jei.api.IModRegistry;
2015-12-31 06:17:20 +01:00
import mezz.jei.api.recipe.VanillaRecipeCategoryUid;
import mezz.jei.api.recipe.transfer.IRecipeTransferRegistry;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
2015-12-31 12:20:04 +01:00
import techreborn.Core;
2015-11-29 11:42:34 +01:00
import techreborn.api.reactor.FusionReactorRecipeHelper;
2015-12-31 06:17:20 +01:00
import techreborn.api.recipe.RecipeHandler;
2015-12-31 06:40:21 +01:00
import techreborn.api.recipe.machines.AssemblingMachineRecipe;
2015-12-31 10:07:35 +01:00
import techreborn.api.recipe.machines.ImplosionCompressorRecipe;
import techreborn.client.container.ContainerAlloyFurnace;
import techreborn.client.container.ContainerAlloySmelter;
import techreborn.client.container.ContainerAssemblingMachine;
import techreborn.client.container.ContainerBlastFurnace;
import techreborn.client.container.ContainerCentrifuge;
import techreborn.client.container.ContainerChemicalReactor;
import techreborn.client.container.ContainerCompressor;
import techreborn.client.container.ContainerExtractor;
import techreborn.client.container.ContainerFusionReactor;
import techreborn.client.container.ContainerGrinder;
import techreborn.client.container.ContainerImplosionCompressor;
import techreborn.client.container.ContainerIndustrialElectrolyzer;
import techreborn.client.container.ContainerIndustrialGrinder;
import techreborn.client.container.ContainerIndustrialSawmill;
import techreborn.client.container.ContainerRollingMachine;
import techreborn.client.container.ContainerVacuumFreezer;
import techreborn.client.gui.GuiAlloyFurnace;
import techreborn.client.gui.GuiAlloySmelter;
import techreborn.client.gui.GuiAssemblingMachine;
import techreborn.client.gui.GuiBlastFurnace;
import techreborn.client.gui.GuiCentrifuge;
import techreborn.client.gui.GuiChemicalReactor;
import techreborn.client.gui.GuiCompressor;
import techreborn.client.gui.GuiElectricFurnace;
import techreborn.client.gui.GuiExtractor;
import techreborn.client.gui.GuiFusionReactor;
import techreborn.client.gui.GuiGrinder;
import techreborn.client.gui.GuiImplosionCompressor;
import techreborn.client.gui.GuiIndustrialElectrolyzer;
import techreborn.client.gui.GuiIndustrialGrinder;
import techreborn.client.gui.GuiIndustrialSawmill;
import techreborn.client.gui.GuiIronFurnace;
import techreborn.client.gui.GuiRecycler;
import techreborn.client.gui.GuiRollingMachine;
import techreborn.client.gui.GuiVacuumFreezer;
2015-12-31 06:17:20 +01:00
import techreborn.compat.jei.alloySmelter.AlloySmelterRecipeCategory;
import techreborn.compat.jei.alloySmelter.AlloySmelterRecipeHandler;
2015-12-31 06:40:21 +01:00
import techreborn.compat.jei.assemblingMachine.AssemblingMachineRecipeCategory;
import techreborn.compat.jei.assemblingMachine.AssemblingMachineRecipeHandler;
2015-12-31 07:28:58 +01:00
import techreborn.compat.jei.blastFurnace.BlastFurnaceRecipeCategory;
import techreborn.compat.jei.blastFurnace.BlastFurnaceRecipeHandler;
2015-12-31 08:13:02 +01:00
import techreborn.compat.jei.centrifuge.CentrifugeRecipeCategory;
import techreborn.compat.jei.centrifuge.CentrifugeRecipeHandler;
2015-12-31 08:30:09 +01:00
import techreborn.compat.jei.chemicalReactor.ChemicalReactorRecipeCategory;
import techreborn.compat.jei.chemicalReactor.ChemicalReactorRecipeHandler;
2016-03-06 14:33:35 +01:00
import techreborn.compat.jei.compressor.CompressorRecipeCategory;
import techreborn.compat.jei.compressor.CompressorRecipeHandler;
import techreborn.compat.jei.extractor.ExtractorRecipeCategory;
import techreborn.compat.jei.extractor.ExtractorRecipeHandler;
2015-11-29 11:42:34 +01:00
import techreborn.compat.jei.fusionReactor.FusionReactorRecipeCategory;
import techreborn.compat.jei.fusionReactor.FusionReactorRecipeHandler;
2016-02-25 14:17:33 +01:00
import techreborn.compat.jei.grinder.GrinderRecipeCategory;
import techreborn.compat.jei.grinder.GrinderRecipeHandler;
2015-12-31 10:07:35 +01:00
import techreborn.compat.jei.implosionCompressor.ImplosionCompressorRecipeCategory;
import techreborn.compat.jei.implosionCompressor.ImplosionCompressorRecipeHandler;
2015-12-31 10:40:56 +01:00
import techreborn.compat.jei.industrialElectrolyzer.IndustrialElectrolyzerRecipeCategory;
import techreborn.compat.jei.industrialElectrolyzer.IndustrialElectrolyzerRecipeHandler;
2016-02-20 01:57:57 +01:00
import techreborn.compat.jei.industrialGrinder.IndustrialGrinderRecipeCategory;
import techreborn.compat.jei.industrialGrinder.IndustrialGrinderRecipeHandler;
2015-12-31 11:11:24 +01:00
import techreborn.compat.jei.industrialSawmill.IndustrialSawmillRecipeCategory;
import techreborn.compat.jei.industrialSawmill.IndustrialSawmillRecipeHandler;
import techreborn.compat.jei.recycler.RecyclerRecipeCategory;
import techreborn.compat.jei.recycler.RecyclerRecipeHandler;
2015-12-31 12:20:04 +01:00
import techreborn.compat.jei.rollingMachine.RollingMachineRecipeCategory;
import techreborn.compat.jei.rollingMachine.RollingMachineRecipeHandler;
import techreborn.compat.jei.rollingMachine.RollingMachineRecipeMaker;
import techreborn.compat.jei.scrapbox.ScrapboxRecipeCategory;
import techreborn.compat.jei.scrapbox.ScrapboxRecipeHandler;
2015-12-31 11:27:07 +01:00
import techreborn.compat.jei.vacuumFreezer.VacuumFreezerRecipeCategory;
import techreborn.compat.jei.vacuumFreezer.VacuumFreezerRecipeHandler;
import techreborn.config.ConfigTechReborn;
import techreborn.init.ModItems;
import techreborn.items.ItemParts;
2015-11-29 11:42:34 +01:00
import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.List;
@mezz.jei.api.JEIPlugin
public class TechRebornJeiPlugin extends BlankModPlugin {
2015-11-29 11:42:34 +01:00
@Override
public void register(@Nonnull IModRegistry registry) {
IJeiHelpers jeiHelpers = registry.getJeiHelpers();
2015-12-31 05:09:06 +01:00
IGuiHelper guiHelper = jeiHelpers.getGuiHelper();
2015-12-05 23:48:11 +01:00
registry.addRecipeCategories(
2015-12-31 06:17:20 +01:00
new AlloySmelterRecipeCategory(guiHelper),
2015-12-31 06:40:21 +01:00
new AssemblingMachineRecipeCategory(guiHelper),
2015-12-31 07:28:58 +01:00
new BlastFurnaceRecipeCategory(guiHelper),
2015-12-31 08:13:02 +01:00
new CentrifugeRecipeCategory(guiHelper),
2015-12-31 08:30:09 +01:00
new ChemicalReactorRecipeCategory(guiHelper),
2015-12-31 09:56:09 +01:00
new FusionReactorRecipeCategory(guiHelper),
2016-02-20 01:57:57 +01:00
new IndustrialGrinderRecipeCategory(guiHelper),
2015-12-31 10:40:56 +01:00
new ImplosionCompressorRecipeCategory(guiHelper),
2015-12-31 11:11:24 +01:00
new IndustrialElectrolyzerRecipeCategory(guiHelper),
2015-12-31 11:27:07 +01:00
new IndustrialSawmillRecipeCategory(guiHelper),
2015-12-31 12:20:04 +01:00
new RollingMachineRecipeCategory(guiHelper),
2016-02-25 14:17:33 +01:00
new VacuumFreezerRecipeCategory(guiHelper),
new GrinderRecipeCategory(guiHelper),
2016-03-06 14:33:35 +01:00
new ExtractorRecipeCategory(guiHelper),
new CompressorRecipeCategory(guiHelper),
new ScrapboxRecipeCategory(guiHelper),
new RecyclerRecipeCategory(guiHelper)
2015-11-29 11:42:34 +01:00
);
2015-12-31 05:09:06 +01:00
2015-12-05 23:48:11 +01:00
registry.addRecipeHandlers(
new AlloySmelterRecipeHandler(jeiHelpers),
new AssemblingMachineRecipeHandler(jeiHelpers),
new BlastFurnaceRecipeHandler(jeiHelpers),
new CentrifugeRecipeHandler(jeiHelpers),
new ChemicalReactorRecipeHandler(jeiHelpers),
2015-12-31 09:56:09 +01:00
new FusionReactorRecipeHandler(),
2016-02-20 01:57:57 +01:00
new IndustrialGrinderRecipeHandler(jeiHelpers),
new ImplosionCompressorRecipeHandler(jeiHelpers),
new IndustrialElectrolyzerRecipeHandler(jeiHelpers),
new IndustrialSawmillRecipeHandler(jeiHelpers),
2015-12-31 12:20:04 +01:00
new RollingMachineRecipeHandler(),
2016-02-25 14:17:33 +01:00
new VacuumFreezerRecipeHandler(jeiHelpers),
new GrinderRecipeHandler(jeiHelpers),
2016-03-06 14:33:35 +01:00
new ExtractorRecipeHandler(jeiHelpers),
new CompressorRecipeHandler(jeiHelpers),
new ScrapboxRecipeHandler(jeiHelpers),
new RecyclerRecipeHandler(jeiHelpers)
2015-11-29 11:42:34 +01:00
);
2015-12-31 05:09:06 +01:00
2015-12-31 06:17:20 +01:00
registry.addRecipes(RecipeHandler.recipeList);
2015-12-31 05:09:06 +01:00
registry.addRecipes(FusionReactorRecipeHelper.reactorRecipes);
2015-12-31 12:20:04 +01:00
try {
registry.addRecipes(RollingMachineRecipeMaker.getRecipes());
} catch (RuntimeException e) {
Core.logHelper.error("Could not register rolling machine recipes. JEI may have changed its internal recipe wrapper locations.");
e.printStackTrace();
}
2015-12-31 06:40:21 +01:00
if (mezz.jei.config.Config.isDebugModeEnabled()) {
addDebugRecipes(registry);
}
registry.addDescription(ItemParts.getPartByName("rubberSap"), StatCollector.translateToLocal("techreborn.desc.rubberSap"));
if(!ConfigTechReborn.scrapboxDispenser){
registry.addDescription(new ItemStack(ModItems.scrapBox), StatCollector.translateToLocal("techreborn.desc.scrapBoxNoDispenser"));
} else {
registry.addDescription(new ItemStack(ModItems.scrapBox), StatCollector.translateToLocal("techreborn.desc.scrapBox"));
}
registry.addRecipeClickArea(GuiAlloyFurnace.class, 80, 35, 26, 20, RecipeCategoryUids.ALLOY_SMELTER, VanillaRecipeCategoryUid.FUEL);
registry.addRecipeClickArea(GuiAlloySmelter.class, 80, 35, 26, 20, RecipeCategoryUids.ALLOY_SMELTER);
registry.addRecipeClickArea(GuiAssemblingMachine.class, 85, 34, 24, 20, RecipeCategoryUids.ASSEMBLING_MACHINE);
registry.addRecipeClickArea(GuiBlastFurnace.class, 63, 36, 24, 15, RecipeCategoryUids.BLAST_FURNACE);
registry.addRecipeClickArea(GuiCentrifuge.class, 98, 37, 9, 12, RecipeCategoryUids.CENTRIFUGE);
registry.addRecipeClickArea(GuiCentrifuge.class, 68, 37, 9, 12, RecipeCategoryUids.CENTRIFUGE);
registry.addRecipeClickArea(GuiCentrifuge.class, 83, 23, 12, 9, RecipeCategoryUids.CENTRIFUGE);
registry.addRecipeClickArea(GuiCentrifuge.class, 83, 53, 12, 9, RecipeCategoryUids.CENTRIFUGE);
registry.addRecipeClickArea(GuiChemicalReactor.class, 73, 39, 32, 12, RecipeCategoryUids.CHEMICAL_REACTOR);
registry.addRecipeClickArea(GuiFusionReactor.class, 111, 34, 27, 19, RecipeCategoryUids.FUSION_REACTOR);
2016-02-25 14:17:33 +01:00
registry.addRecipeClickArea(GuiIndustrialGrinder.class, 50, 35, 25, 16, RecipeCategoryUids.INDUSTRIAL_GRINDER);
registry.addRecipeClickArea(GuiImplosionCompressor.class, 60, 37, 24, 15, RecipeCategoryUids.IMPLOSION_COMPRESSOR);
registry.addRecipeClickArea(GuiIndustrialElectrolyzer.class, 72, 37, 33, 14, RecipeCategoryUids.INDUSTRIAL_ELECTROLYZER);
registry.addRecipeClickArea(GuiIndustrialSawmill.class, 55, 36, 24, 16, RecipeCategoryUids.INDUSTRIAL_SAWMILL);
registry.addRecipeClickArea(GuiRollingMachine.class, 89, 32, 26, 25, RecipeCategoryUids.ROLLING_MACHINE);
registry.addRecipeClickArea(GuiVacuumFreezer.class, 78, 36, 24, 16, RecipeCategoryUids.VACUUM_FREEZER);
2016-02-25 14:17:33 +01:00
registry.addRecipeClickArea(GuiGrinder.class, 78, 36, 24, 16, RecipeCategoryUids.GRINDER);
registry.addRecipeClickArea(GuiExtractor.class, 78, 36, 24, 16, RecipeCategoryUids.EXTRACTOR);
2016-03-06 14:33:35 +01:00
registry.addRecipeClickArea(GuiCompressor.class, 78, 36, 24, 16, RecipeCategoryUids.COMPRESSOR);
registry.addRecipeClickArea(GuiIronFurnace.class, 78, 36, 24, 16, VanillaRecipeCategoryUid.SMELTING, VanillaRecipeCategoryUid.FUEL);
2016-03-07 00:15:28 +01:00
registry.addRecipeClickArea(GuiElectricFurnace.class, 78, 36, 24, 16, VanillaRecipeCategoryUid.SMELTING, VanillaRecipeCategoryUid.FUEL);
registry.addRecipeClickArea(GuiRecycler.class, 78, 36, 24, 16, RecipeCategoryUids.RECYCLER);
2016-02-25 14:17:33 +01:00
IRecipeTransferRegistry recipeTransferRegistry = registry.getRecipeTransferRegistry();
2015-12-31 06:17:20 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerAlloyFurnace.class, RecipeCategoryUids.ALLOY_SMELTER, 0, 2, 4, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerAlloySmelter.class, RecipeCategoryUids.ALLOY_SMELTER, 0, 2, 8, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerAlloyFurnace.class, VanillaRecipeCategoryUid.FUEL, 3, 1, 4, 36);
2015-12-31 06:40:21 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerAssemblingMachine.class, RecipeCategoryUids.ASSEMBLING_MACHINE, 0, 2, 8, 36);
2015-12-31 07:28:58 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerBlastFurnace.class, RecipeCategoryUids.BLAST_FURNACE, 0, 2, 4, 36);
2015-12-31 08:13:02 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerCentrifuge.class, RecipeCategoryUids.CENTRIFUGE, 0, 2, 11, 36);
2015-12-31 08:30:09 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerChemicalReactor.class, RecipeCategoryUids.CHEMICAL_REACTOR, 0, 2, 8, 36);
2015-12-31 06:17:20 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerFusionReactor.class, RecipeCategoryUids.FUSION_REACTOR, 0, 2, 3, 36);
2016-02-20 01:57:57 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerIndustrialGrinder.class, RecipeCategoryUids.GRINDER, 0, 2, 6, 36);
2015-12-31 10:07:35 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerImplosionCompressor.class, RecipeCategoryUids.IMPLOSION_COMPRESSOR, 0, 2, 4, 36);
2015-12-31 10:40:56 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerIndustrialElectrolyzer.class, RecipeCategoryUids.INDUSTRIAL_ELECTROLYZER, 0, 2, 7, 36);
2015-12-31 11:11:24 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerIndustrialSawmill.class, RecipeCategoryUids.INDUSTRIAL_SAWMILL, 0, 2, 5, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerRollingMachine.class, RecipeCategoryUids.ROLLING_MACHINE, 0, 9, 11, 36);
2015-12-31 11:27:07 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerVacuumFreezer.class, RecipeCategoryUids.VACUUM_FREEZER, 0, 1, 2, 36);
2016-02-25 14:17:33 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerGrinder.class, RecipeCategoryUids.GRINDER, 0, 1, 2, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerExtractor.class, RecipeCategoryUids.EXTRACTOR, 0, 1, 2, 36);
2016-03-06 14:33:35 +01:00
recipeTransferRegistry.addRecipeTransferHandler(ContainerCompressor.class, RecipeCategoryUids.COMPRESSOR, 0, 1, 2, 36);
2015-11-29 11:42:34 +01:00
}
2015-12-30 12:57:06 +01:00
2015-12-31 06:40:21 +01:00
private static void addDebugRecipes(IModRegistry registry) {
ItemStack diamondBlock = new ItemStack(Blocks.diamond_block);
ItemStack dirtBlock = new ItemStack(Blocks.dirt);
List<Object> debugRecipes = new ArrayList<>();
for (int i = 0; i < 10; i++) {
int time = (int) Math.round(200 + Math.random() * 100);
AssemblingMachineRecipe assemblingMachineRecipe = new AssemblingMachineRecipe(diamondBlock, diamondBlock, dirtBlock, time, 120);
debugRecipes.add(assemblingMachineRecipe);
}
2015-12-31 10:07:35 +01:00
for (int i = 0; i < 10; i++) {
int time = (int) Math.round(200 + Math.random() * 100);
ImplosionCompressorRecipe recipe = new ImplosionCompressorRecipe(diamondBlock, diamondBlock, dirtBlock, dirtBlock, time, 120);
debugRecipes.add(recipe);
}
2015-12-31 06:40:21 +01:00
registry.addRecipes(debugRecipes);
}
2015-11-29 11:42:34 +01:00
}