aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java')
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java
index e0ea0235c..740a7f545 100644
--- a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java
+++ b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java
@@ -5,28 +5,51 @@
package me.shedaniel.rei.plugin.crafting;
-import me.shedaniel.rei.api.RecipeDisplay;
+import com.google.common.collect.Lists;
+import me.shedaniel.rei.api.TransferRecipeDisplay;
import me.shedaniel.rei.plugin.DefaultPlugin;
+import me.shedaniel.rei.server.ContainerInfo;
+import net.minecraft.container.Container;
+import net.minecraft.item.ItemStack;
import net.minecraft.recipe.Recipe;
import net.minecraft.util.Identifier;
+import java.util.List;
import java.util.Optional;
-public interface DefaultCraftingDisplay extends RecipeDisplay {
+public interface DefaultCraftingDisplay extends TransferRecipeDisplay {
@Override
default Identifier getRecipeCategory() {
return DefaultPlugin.CRAFTING;
}
+ @Override
default public int getWidth() {
return 2;
}
+ @Override
default public int getHeight() {
return 2;
}
Optional<Recipe<?>> getOptionalRecipe();
+ @Override
+ default List<List<ItemStack>> getOrganisedInput(ContainerInfo<Container> containerInfo, Container container) {
+ List<List<ItemStack>> list = Lists.newArrayListWithCapacity(containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container));
+ for (int i = 0; i < containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container); i++) {
+ list.add(Lists.newArrayList());
+ }
+ for (int i = 0; i < getInput().size(); i++) {
+ List<ItemStack> stacks = getInput().get(i);
+ if (this instanceof DefaultShapedDisplay) {
+ if (!stacks.isEmpty())
+ list.set(DefaultCraftingCategory.getSlotWithSize(this, i), stacks);
+ } else if (!stacks.isEmpty())
+ list.set(i, stacks);
+ }
+ return list;
+ }
}