Advertisement
Bizebis

JEI

Jun 19th, 2022
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.91 KB | None | 0 0
  1. package net.mcreator.improveforbattle;
  2.  
  3. import net.mcreator.improveforbattle.network.ImproveForBattleModVariables;
  4. import net.mcreator.improveforbattle.init.ImproveForBattleModItems;
  5. import net.mcreator.improveforbattle.init.ImproveForBattleModBlocks;
  6.  
  7. import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
  8. import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
  9. import net.minecraftforge.fml.common.Mod;
  10. import net.minecraftforge.eventbus.api.SubscribeEvent;
  11. import net.minecraftforge.event.world.BiomeLoadingEvent;
  12. import net.minecraftforge.event.server.ServerStartingEvent;
  13. import net.minecraftforge.api.distmarker.OnlyIn;
  14. import net.minecraftforge.api.distmarker.Dist;
  15.  
  16. import mezz.jei.api.IModPlugin;
  17. import mezz.jei.api.constants.VanillaTypes;
  18. import mezz.jei.api.gui.IRecipeLayout;
  19. import mezz.jei.api.gui.drawable.IDrawable;
  20. import mezz.jei.api.gui.ingredient.IGuiItemStackGroup;
  21. import mezz.jei.api.helpers.IGuiHelper;
  22. import mezz.jei.api.helpers.IJeiHelpers;
  23. import mezz.jei.api.ingredients.IIngredients;
  24. import mezz.jei.api.recipe.category.IRecipeCategory;
  25. import mezz.jei.api.registration.IRecipeCatalystRegistration;
  26. import mezz.jei.api.registration.IRecipeCategoryRegistration;
  27. import mezz.jei.api.registration.IRecipeRegistration;
  28. import net.minecraft.world.item.ItemStack;
  29. import net.minecraft.world.item.Items;
  30. import net.minecraft.util.ResourceLocation;
  31.  
  32. import java.util.ArrayList;
  33. import java.util.List;
  34.  
  35. @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
  36. public class JEI {
  37.  
  38.     public static IJeiHelpers jeiHelper;
  39.  
  40.     @Override
  41.     public ResourceLocation getPluginUid() {
  42.         return new ResourceLocation("improve_for_battle", "default");
  43.     }
  44.  
  45.     @Override
  46.     public void registerCategories(IRecipeCategoryRegistration registration) {
  47.         jeiHelper = registration.getJeiHelpers();
  48.         registration.addRecipeCategories(new ForgeAnvilJeiCategory(jeiHelper.getGuiHelper()));
  49.     }
  50.  
  51.     @Override
  52.     public void registerRecipes(IRecipeRegistration registration) {
  53.         registration.addRecipes(generateForgeAnvilRecipes(), ForgeAnvilJeiCategory.Uid);
  54.         // ...
  55.     }
  56.  
  57.     private List<ForgeAnvilJeiCategory.ForgeAnvilRecipeWrapper> generateForgeAnvilRecipes() {
  58.         List<ForgeAnvilJeiCategory.ForgeAnvilRecipeWrapper> recipes = new ArrayList<>();
  59.         ArrayList<ItemStack> inputs = new ArrayList<>();
  60.         ArrayList<ItemStack> outputs = new ArrayList<>();
  61.         inputs.add(new ItemStack(Items.DIAMOND)); //slot 0 item
  62.         inputs.add(new ItemStack(Items.DIAMOND)); //slot 1 item
  63.         inputs.add(new ItemStack(Items.DIAMOND));//slot 2 item
  64.         outputs.add(new ItemStack(Items.DIAMOND)); //slot 3 item
  65.         // ...
  66.         recipes.add(new ForgeAnvilJeiCategory.ForgeAnvilRecipeWrapper(inputs, outputs));
  67.         return recipes;
  68.     }
  69.  
  70.     @Override
  71.     public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) {
  72.         registration.addRecipeCatalyst(new ItemStack(ForgeAnvilBlock.block), ForgeAnvilJeiCategory.Uid);
  73.     }
  74.  
  75.     public static class ForgeAnvilJeiCategory implements IRecipeCategory<ForgeAnvilJeiCategory.ForgeAnvilRecipeWrapper> {
  76.         private static ResourceLocation Uid = new ResourceLocation("improve_for_battle", "forgeanvilcategory");
  77.         private static final int input1 = 0; // THE NUMBER = SLOTID
  78.         private static final int input2 = 1; // THE NUMBER = SLOTID
  79.         private static final int output1 = 3; // THE NUMBER = SLOTID
  80.         // ...
  81.         private final String title;
  82.         private final IDrawable background;
  83.  
  84.         public ForgeAnvilJeiCategory(IGuiHelper guiHelper) {
  85.             this.title = "Forge Anvil";
  86.             this.background = guiHelper.createDrawable(new ResourceLocation("improve_for_battle", "textures/anvil_forge_gui.png"), 0, 0, 178, 166);
  87.         }
  88.  
  89.         @Override
  90.         public ResourceLocation getUid() {
  91.             return Uid;
  92.         }
  93.  
  94.         @Override
  95.         public Class<? extends ForgeAnvilRecipeWrapper> getRecipeClass() {
  96.             return ForgeAnvilJeiCategory.ForgeAnvilRecipeWrapper.class;
  97.         }
  98.  
  99.         @Override
  100.         public String getTitle() {
  101.             return title;
  102.         }
  103.  
  104.         @Override
  105.         public IDrawable getBackground() {
  106.             return background;
  107.         }
  108.  
  109.         @Override
  110.         public IDrawable getIcon() {
  111.             return null;
  112.         }
  113.  
  114.         @Override
  115.         public void setIngredients(ForgeAnvilRecipeWrapper recipeWrapper, IIngredients iIngredients) {
  116.             iIngredients.setInputs(VanillaTypes.ITEM, recipeWrapper.getInput());
  117.             iIngredients.setOutputs(VanillaTypes.ITEM, recipeWrapper.getOutput());
  118.         }
  119.  
  120.         @Override
  121.         public void setRecipe(IRecipeLayout iRecipeLayout, ForgeAnvilRecipeWrapper recipeWrapper, IIngredients iIngredients) {
  122.             IGuiItemStackGroup stacks = iRecipeLayout.getItemStacks();
  123.             stacks.init(input1, true, 17, 46);
  124.             stacks.init(input2, true, 75, 46);
  125.             stacks.init(output1, false, 143, 46);
  126.             // ...
  127.             stacks.set(input1, iIngredients.getInputs(VanillaTypes.ITEM).get(0));
  128.             stacks.set(input2, iIngredients.getInputs(VanillaTypes.ITEM).get(1));
  129.             stacks.set(output1, iIngredients.getOutputs(VanillaTypes.ITEM).get(0));
  130.             // ...
  131.         }
  132.  
  133.         public static class ForgeAnvilRecipeWrapper {
  134.             private List<ItemStack> input;
  135.             private List<ItemStack> output;
  136.  
  137.             public ForgeAnvilRecipeWrapper(List<ItemStack> input, List<ItemStack> output) {
  138.                 this.input = input;
  139.                 this.output = output;
  140.             }
  141.  
  142.             public List<ItemStack> getInput() {
  143.                 return input;
  144.             }
  145.  
  146.             public List<ItemStack> getOutput() {
  147.                 return output;
  148.             }
  149.         }
  150.     }
  151. }
  152.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement