Skip to content

Commit

Permalink
show wut recipes in REI
Browse files Browse the repository at this point in the history
  • Loading branch information
Mari023 committed May 20, 2021
1 parent a1899a5 commit cc7c5ae
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 0 deletions.
63 changes: 63 additions & 0 deletions src/main/java/de/mari_023/fabric/ae2wtlib/rei/CombineDisplay.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package de.mari_023.fabric.ae2wtlib.rei;

import de.mari_023.fabric.ae2wtlib.wut.recipe.Combine;
import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.plugin.crafting.DefaultCraftingDisplay;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.recipe.Recipe;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull;

import java.util.Collections;
import java.util.List;
import java.util.Optional;

@Environment(EnvType.CLIENT)
public class CombineDisplay implements DefaultCraftingDisplay {

private final Combine display;
private final List<List<EntryStack>> input;
private final List<EntryStack> output;

public CombineDisplay(Combine recipe) {
this.display = recipe;
this.input = EntryStack.ofIngredients(recipe.getPreviewInputs());
this.output = Collections.singletonList(EntryStack.create(recipe.getOutput()));
}

@Override
public Optional<Recipe<?>> getOptionalRecipe() {
return Optional.ofNullable(display);
}

@Override
public @NotNull Optional<Identifier> getRecipeLocation() {
return Optional.ofNullable(display).map(Combine::getId);
}

@Override
public @NotNull List<List<EntryStack>> getInputEntries() {
return input;
}

@Override
public @NotNull List<List<EntryStack>> getResultingEntries() {
return Collections.singletonList(output);
}

@Override
public @NotNull List<List<EntryStack>> getRequiredEntries() {
return input;
}

@Override
public int getWidth() {
return 2;
}

@Override
public int getHeight() {
return 1;
}
}
9 changes: 9 additions & 0 deletions src/main/java/de/mari_023/fabric/ae2wtlib/rei/Plugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import de.mari_023.fabric.ae2wtlib.ae2wtlib;
import de.mari_023.fabric.ae2wtlib.wct.WCTContainer;
import de.mari_023.fabric.ae2wtlib.wpt.WPTContainer;
import de.mari_023.fabric.ae2wtlib.wut.recipe.Combine;
import de.mari_023.fabric.ae2wtlib.wut.recipe.Upgrade;
import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.api.RecipeHelper;
import me.shedaniel.rei.api.plugins.REIPluginV0;
Expand All @@ -23,4 +25,11 @@ public void registerOthers(RecipeHelper recipeHelper) {

recipeHelper.registerWorkingStations(DefaultPlugin.CRAFTING, EntryStack.create(ae2wtlib.CRAFTING_TERMINAL));
}


@Override
public void registerRecipeDisplays(RecipeHelper recipeHelper) {
recipeHelper.registerRecipes(DefaultPlugin.CRAFTING, Combine.class, CombineDisplay::new);
recipeHelper.registerRecipes(DefaultPlugin.CRAFTING, Upgrade.class, UpgradeDisplay::new);
}
}
63 changes: 63 additions & 0 deletions src/main/java/de/mari_023/fabric/ae2wtlib/rei/UpgradeDisplay.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package de.mari_023.fabric.ae2wtlib.rei;

import de.mari_023.fabric.ae2wtlib.wut.recipe.Upgrade;
import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.plugin.crafting.DefaultCraftingDisplay;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.recipe.Recipe;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.NotNull;

import java.util.Collections;
import java.util.List;
import java.util.Optional;

@Environment(EnvType.CLIENT)
public class UpgradeDisplay implements DefaultCraftingDisplay {

private final Upgrade display;
private final List<List<EntryStack>> input;
private final List<EntryStack> output;

public UpgradeDisplay(Upgrade recipe) {
this.display = recipe;
this.input = EntryStack.ofIngredients(recipe.getPreviewInputs());
this.output = Collections.singletonList(EntryStack.create(recipe.getOutput()));
}

@Override
public Optional<Recipe<?>> getOptionalRecipe() {
return Optional.ofNullable(display);
}

@Override
public @NotNull Optional<Identifier> getRecipeLocation() {
return Optional.ofNullable(display).map(Upgrade::getId);
}

@Override
public @NotNull List<List<EntryStack>> getInputEntries() {
return input;
}

@Override
public @NotNull List<List<EntryStack>> getResultingEntries() {
return Collections.singletonList(output);
}

@Override
public @NotNull List<List<EntryStack>> getRequiredEntries() {
return input;
}

@Override
public int getWidth() {
return 2;
}

@Override
public int getHeight() {
return 1;
}
}

0 comments on commit cc7c5ae

Please sign in to comment.