aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-10 23:37:34 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-10 23:37:34 +0800
commitff3c2799a766babb69d772f15958d7a0bf50868c (patch)
tree38d045d36135a79ca32011dfae7d011333ad7804 /src/main/java/me/shedaniel/rei/plugin
parent9644c27ae7b344a6dbe3cc77cd6f567525f1c711 (diff)
downloadRoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.gz
RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.bz2
RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.zip
Basic Searching Works
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin')
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java26
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java15
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java28
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultShapedDisplay.java45
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultShapelessDisplay.java45
5 files changed, 159 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java
new file mode 100644
index 000000000..ca12a2856
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java
@@ -0,0 +1,26 @@
+package me.shedaniel.rei.plugin;
+
+import me.shedaniel.rei.api.IRecipeCategory;
+import net.minecraft.block.Blocks;
+import net.minecraft.client.resource.language.I18n;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.Identifier;
+
+public class DefaultCraftingCategory implements IRecipeCategory<DefaultCraftingDisplay> {
+
+ @Override
+ public Identifier getIdentifier() {
+ return DefaultPlugin.CRAFTING;
+ }
+
+ @Override
+ public ItemStack getCategoryIcon() {
+ return new ItemStack(Blocks.CRAFTING_TABLE.getItem());
+ }
+
+ @Override
+ public String getCategoryName() {
+ return I18n.translate("category.rei.crafting");
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java
new file mode 100644
index 000000000..4c92bc9c7
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java
@@ -0,0 +1,15 @@
+package me.shedaniel.rei.plugin;
+
+import me.shedaniel.rei.api.IRecipeDisplay;
+import net.minecraft.recipe.Recipe;
+import net.minecraft.recipe.crafting.ShapelessRecipe;
+import net.minecraft.util.Identifier;
+
+public interface DefaultCraftingDisplay<T> extends IRecipeDisplay<Recipe> {
+
+ @Override
+ default Identifier getRecipeCategory() {
+ return DefaultPlugin.CRAFTING;
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
new file mode 100644
index 000000000..03ed527de
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -0,0 +1,28 @@
+package me.shedaniel.rei.plugin;
+
+import me.shedaniel.rei.api.IRecipePlugin;
+import me.shedaniel.rei.client.RecipeHelper;
+import net.minecraft.recipe.Recipe;
+import net.minecraft.recipe.crafting.ShapedRecipe;
+import net.minecraft.recipe.crafting.ShapelessRecipe;
+import net.minecraft.util.Identifier;
+
+public class DefaultPlugin implements IRecipePlugin {
+
+ static final Identifier CRAFTING = new Identifier("roughlyenoughitems", "plugin/crafting");
+
+ @Override
+ public void registerPluginCategories() {
+ RecipeHelper.registerCategory(new DefaultCraftingCategory());
+ }
+
+ @Override
+ public void registerRecipes() {
+ for(Recipe value : RecipeHelper.getRecipeManager().values())
+ if (value instanceof ShapelessRecipe)
+ RecipeHelper.registerRecipe(CRAFTING, new DefaultShapelessDisplay((ShapelessRecipe) value));
+ else if (value instanceof ShapedRecipe)
+ RecipeHelper.registerRecipe(CRAFTING, new DefaultShapedDisplay((ShapedRecipe) value));
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultShapedDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultShapedDisplay.java
new file mode 100644
index 000000000..5bf5586c5
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultShapedDisplay.java
@@ -0,0 +1,45 @@
+package me.shedaniel.rei.plugin;
+
+import com.google.common.collect.Lists;
+import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.crafting.ShapedRecipe;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class DefaultShapedDisplay implements DefaultCraftingDisplay<ShapedRecipe> {
+
+ private ShapedRecipe display;
+ private List<List<ItemStack>> input;
+ private List<ItemStack> output;
+
+ public DefaultShapedDisplay(ShapedRecipe recipe) {
+ this.display = recipe;
+ this.input = Lists.newArrayList();
+ recipe.getPreviewInputs().forEach(ingredient -> {
+ input.add(Arrays.asList(ingredient.getStackArray()));
+ });
+ this.output = Arrays.asList(recipe.getOutput());
+ }
+
+ @Override
+ public ShapedRecipe getRecipe() {
+ return display;
+ }
+
+ @Override
+ public List<List<ItemStack>> getInput() {
+ return input;
+ }
+
+ @Override
+ public List<ItemStack> getOutput() {
+ return output;
+ }
+
+ @Override
+ public List<List<ItemStack>> getRequiredItems() {
+ return input;
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultShapelessDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultShapelessDisplay.java
new file mode 100644
index 000000000..55cf6315f
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultShapelessDisplay.java
@@ -0,0 +1,45 @@
+package me.shedaniel.rei.plugin;
+
+import com.google.common.collect.Lists;
+import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.crafting.ShapelessRecipe;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class DefaultShapelessDisplay implements DefaultCraftingDisplay {
+
+ private ShapelessRecipe display;
+ private List<List<ItemStack>> input;
+ private List<ItemStack> output;
+
+ public DefaultShapelessDisplay(ShapelessRecipe recipe) {
+ this.display = recipe;
+ this.input = Lists.newArrayList();
+ recipe.getPreviewInputs().forEach(ingredient -> {
+ input.add(Arrays.asList(ingredient.getStackArray()));
+ });
+ this.output = Arrays.asList(recipe.getOutput());
+ }
+
+ @Override
+ public ShapelessRecipe getRecipe() {
+ return display;
+ }
+
+ @Override
+ public List<List<ItemStack>> getInput() {
+ return input;
+ }
+
+ @Override
+ public List<ItemStack> getOutput() {
+ return output;
+ }
+
+ @Override
+ public List<List<ItemStack>> getRequiredItems() {
+ return input;
+ }
+
+}