2016-02-20 01:57:57 +01:00
|
|
|
package techreborn.compat.jei.industrialGrinder;
|
|
|
|
|
|
|
|
import mezz.jei.api.IGuiHelper;
|
|
|
|
import mezz.jei.api.gui.IDrawable;
|
|
|
|
import mezz.jei.api.gui.IGuiFluidStackGroup;
|
|
|
|
import mezz.jei.api.gui.IGuiItemStackGroup;
|
|
|
|
import mezz.jei.api.gui.IRecipeLayout;
|
2016-09-27 18:03:57 +02:00
|
|
|
import mezz.jei.api.ingredients.IIngredients;
|
2016-02-20 01:57:57 +01:00
|
|
|
import mezz.jei.api.recipe.BlankRecipeCategory;
|
|
|
|
import net.minecraft.client.Minecraft;
|
2016-03-18 09:29:29 +01:00
|
|
|
import net.minecraft.util.text.translation.I18n;
|
2016-02-20 01:57:57 +01:00
|
|
|
import techreborn.client.gui.GuiIndustrialGrinder;
|
|
|
|
import techreborn.compat.jei.RecipeCategoryUids;
|
|
|
|
import techreborn.compat.jei.RecipeUtil;
|
2016-07-24 21:26:15 +02:00
|
|
|
import techreborn.tiles.multiblock.TileIndustrialGrinder;
|
2016-02-20 01:57:57 +01:00
|
|
|
|
2016-10-08 21:46:16 +02:00
|
|
|
import javax.annotation.Nonnull;
|
|
|
|
|
|
|
|
public class IndustrialGrinderRecipeCategory extends BlankRecipeCategory<IndustrialGrinderRecipeWrapper> {
|
2016-03-25 10:47:34 +01:00
|
|
|
private static final int[] INPUT_SLOTS = { 0, 1 };
|
|
|
|
private static final int[] OUTPUT_SLOTS = { 2, 3, 4, 5 };
|
|
|
|
private static final int[] INPUT_TANKS = { 0 };
|
2016-02-20 01:57:57 +01:00
|
|
|
|
|
|
|
private final IDrawable background;
|
2016-03-25 10:47:34 +01:00
|
|
|
private final IDrawable blankArea; // for covering the lightning power
|
2016-10-08 21:46:16 +02:00
|
|
|
// symbol
|
2016-02-20 01:57:57 +01:00
|
|
|
private final IDrawable tankOverlay;
|
|
|
|
private final String title;
|
|
|
|
|
2016-10-08 21:46:16 +02:00
|
|
|
public IndustrialGrinderRecipeCategory(IGuiHelper guiHelper) {
|
2016-02-20 01:57:57 +01:00
|
|
|
background = guiHelper.createDrawable(GuiIndustrialGrinder.texture, 7, 15, 141, 55);
|
|
|
|
blankArea = guiHelper.createDrawable(GuiIndustrialGrinder.texture, 50, 45, 6, 6);
|
|
|
|
tankOverlay = guiHelper.createDrawable(GuiIndustrialGrinder.texture, 176, 86, 12, 47);
|
2016-03-18 09:29:29 +01:00
|
|
|
title = I18n.translateToLocal("tile.techreborn.industrialgrinder.name");
|
2016-02-20 01:57:57 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Nonnull
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public String getUid() {
|
2016-02-25 14:17:33 +01:00
|
|
|
return RecipeCategoryUids.INDUSTRIAL_GRINDER;
|
2016-02-20 01:57:57 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Nonnull
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public String getTitle() {
|
2016-02-20 01:57:57 +01:00
|
|
|
return title;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Nonnull
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public IDrawable getBackground() {
|
2016-02-20 01:57:57 +01:00
|
|
|
return background;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public void drawExtras(
|
|
|
|
@Nonnull
|
|
|
|
Minecraft minecraft) {
|
2016-02-20 01:57:57 +01:00
|
|
|
blankArea.draw(minecraft, 129, 49);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public void setRecipe(
|
|
|
|
@Nonnull
|
|
|
|
IRecipeLayout recipeLayout,
|
|
|
|
@Nonnull
|
|
|
|
IndustrialGrinderRecipeWrapper recipeWrapper) {
|
2016-02-20 01:57:57 +01:00
|
|
|
IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks();
|
|
|
|
guiItemStacks.init(INPUT_SLOTS[0], true, 24, 10);
|
|
|
|
guiItemStacks.init(INPUT_SLOTS[1], true, 24, 28);
|
|
|
|
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[1], false, 87, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[2], false, 105, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[3], false, 123, 19);
|
|
|
|
|
|
|
|
IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks();
|
|
|
|
guiFluidStacks.init(INPUT_TANKS[0], true, 4, 4, 12, 47, TileIndustrialGrinder.TANK_CAPACITY, true, tankOverlay);
|
|
|
|
|
2016-09-27 18:03:57 +02:00
|
|
|
RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, INPUT_TANKS, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-10-08 21:46:16 +02:00
|
|
|
public void setRecipe(
|
|
|
|
@Nonnull
|
|
|
|
IRecipeLayout recipeLayout,
|
|
|
|
@Nonnull
|
|
|
|
IndustrialGrinderRecipeWrapper recipeWrapper,
|
|
|
|
@Nonnull
|
|
|
|
IIngredients ingredients) {
|
2016-09-27 18:03:57 +02:00
|
|
|
IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks();
|
|
|
|
guiItemStacks.init(INPUT_SLOTS[0], true, 24, 10);
|
|
|
|
guiItemStacks.init(INPUT_SLOTS[1], true, 24, 28);
|
|
|
|
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[1], false, 87, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[2], false, 105, 19);
|
|
|
|
guiItemStacks.init(OUTPUT_SLOTS[3], false, 123, 19);
|
|
|
|
|
|
|
|
IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks();
|
|
|
|
guiFluidStacks.init(INPUT_TANKS[0], true, 4, 4, 12, 47, TileIndustrialGrinder.TANK_CAPACITY, true, tankOverlay);
|
|
|
|
|
|
|
|
RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, INPUT_TANKS, null);
|
2016-02-20 01:57:57 +01:00
|
|
|
}
|
|
|
|
}
|