NaturesAura/src/main/java/de/ellpeck/naturesaura/compat/jei/TreeRitualCategory.java

80 lines
2.8 KiB
Java
Raw Normal View History

2020-01-21 21:04:44 +01:00
package de.ellpeck.naturesaura.compat.jei;
2018-10-16 21:10:38 +02:00
2020-01-23 20:57:56 +01:00
import com.google.common.collect.ImmutableList;
2018-10-16 21:10:38 +02:00
import de.ellpeck.naturesaura.NaturesAura;
2018-11-11 13:26:19 +01:00
import de.ellpeck.naturesaura.api.recipes.TreeRitualRecipe;
2020-01-23 20:57:56 +01:00
import mezz.jei.api.constants.VanillaTypes;
2018-10-16 21:10:38 +02:00
import mezz.jei.api.gui.IRecipeLayout;
2020-01-21 21:04:44 +01:00
import mezz.jei.api.gui.drawable.IDrawable;
import mezz.jei.api.gui.ingredient.IGuiItemStackGroup;
import mezz.jei.api.helpers.IGuiHelper;
2018-10-16 21:10:38 +02:00
import mezz.jei.api.ingredients.IIngredients;
2020-01-21 21:04:44 +01:00
import mezz.jei.api.recipe.category.IRecipeCategory;
2018-10-16 21:10:38 +02:00
import net.minecraft.client.resources.I18n;
2020-01-23 20:57:56 +01:00
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
2018-10-16 21:10:38 +02:00
import net.minecraft.util.ResourceLocation;
import java.util.Arrays;
2020-01-21 21:04:44 +01:00
public class TreeRitualCategory implements IRecipeCategory<TreeRitualRecipe> {
2018-10-16 21:10:38 +02:00
private final IDrawable background;
public TreeRitualCategory(IGuiHelper helper) {
2018-10-22 00:14:52 +02:00
this.background = helper.createDrawable(new ResourceLocation(NaturesAura.MOD_ID, "textures/gui/jei/tree_ritual.png"), 0, 0, 146, 86);
2018-10-16 21:10:38 +02:00
}
@Override
2020-01-21 21:04:44 +01:00
public ResourceLocation getUid() {
2018-10-16 21:10:38 +02:00
return JEINaturesAuraPlugin.TREE_RITUAL;
}
@Override
2020-01-21 21:04:44 +01:00
public Class<? extends TreeRitualRecipe> getRecipeClass() {
return TreeRitualRecipe.class;
2018-10-16 21:10:38 +02:00
}
@Override
2020-01-21 21:04:44 +01:00
public String getTitle() {
return I18n.format("container." + JEINaturesAuraPlugin.TREE_RITUAL + ".name");
2018-10-16 21:10:38 +02:00
}
@Override
public IDrawable getBackground() {
return this.background;
}
@Override
2020-01-21 21:04:44 +01:00
public IDrawable getIcon() {
return null;
}
@Override
public void setIngredients(TreeRitualRecipe treeRitualRecipe, IIngredients iIngredients) {
2020-01-23 20:57:56 +01:00
ImmutableList.Builder<ItemStack> builder = ImmutableList.builder();
for (Ingredient ing : treeRitualRecipe.ingredients)
builder.add(ing.getMatchingStacks());
builder.add(treeRitualRecipe.saplingType.getMatchingStacks());
iIngredients.setInputs(VanillaTypes.ITEM, builder.build());
iIngredients.setOutput(VanillaTypes.ITEM, treeRitualRecipe.result);
2020-01-21 21:04:44 +01:00
}
@Override
public void setRecipe(IRecipeLayout iRecipeLayout, TreeRitualRecipe treeRitualRecipe, IIngredients iIngredients) {
IGuiItemStackGroup group = iRecipeLayout.getItemStacks();
2018-10-16 21:10:38 +02:00
group.init(0, true, 34, 34);
2020-01-21 21:04:44 +01:00
group.set(0, Arrays.asList(treeRitualRecipe.saplingType.getMatchingStacks()));
2018-10-16 21:10:38 +02:00
group.init(1, true, 124, 34);
2020-01-21 21:04:44 +01:00
group.set(1, treeRitualRecipe.result);
2018-10-16 21:10:38 +02:00
int[][] positions = new int[][]{{35, 1}, {35, 69}, {1, 35}, {69, 35}, {12, 12}, {58, 58}, {58, 12}, {12, 58}};
2020-01-21 21:04:44 +01:00
for (int i = 0; i < treeRitualRecipe.ingredients.length; i++) {
2018-10-16 21:10:38 +02:00
group.init(i + 2, true, positions[i][0] - 1, positions[i][1] - 1);
2020-01-21 21:04:44 +01:00
group.set(i + 2, Arrays.asList(treeRitualRecipe.ingredients[i].getMatchingStacks()));
2018-10-16 21:10:38 +02:00
}
}
}