diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-01-10 23:37:34 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-01-10 23:37:34 +0800 |
| commit | ff3c2799a766babb69d772f15958d7a0bf50868c (patch) | |
| tree | 38d045d36135a79ca32011dfae7d011333ad7804 /src/main/java/me/shedaniel/rei/plugin | |
| parent | 9644c27ae7b344a6dbe3cc77cd6f567525f1c711 (diff) | |
| download | RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.gz RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.tar.bz2 RoughlyEnoughItems-ff3c2799a766babb69d772f15958d7a0bf50868c.zip | |
Basic Searching Works
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin')
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; + } + +} |
