aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-12 21:28:36 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-12 21:28:36 +0800
commitdfa3067117e96aa630a88952f0e5d4535bee8bf3 (patch)
tree21550ef69e146b18158be0c49a2a7fcf581bcc90 /src/main/java/me/shedaniel/rei/plugin
parent936dc5f6dc09ad9a552728f9db06f11b4828bad2 (diff)
downloadRoughlyEnoughItems-dfa3067117e96aa630a88952f0e5d4535bee8bf3.tar.gz
RoughlyEnoughItems-dfa3067117e96aa630a88952f0e5d4535bee8bf3.tar.bz2
RoughlyEnoughItems-dfa3067117e96aa630a88952f0e5d4535bee8bf3.zip
Basic Config
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin')
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/BrewingRecipe.java17
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java66
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java54
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java14
4 files changed, 151 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/BrewingRecipe.java b/src/main/java/me/shedaniel/rei/plugin/BrewingRecipe.java
new file mode 100644
index 000000000..b4bcdb39a
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/BrewingRecipe.java
@@ -0,0 +1,17 @@
+package me.shedaniel.rei.plugin;
+
+import net.minecraft.item.Item;
+import net.minecraft.recipe.Ingredient;
+
+public class BrewingRecipe {
+
+ public final Item input;
+ public final Ingredient ingredient;
+ public final Item output;
+
+ public BrewingRecipe(Item object_1, Ingredient ingredient_1, Item object_2) {
+ this.input = object_1;
+ this.ingredient = ingredient_1;
+ this.output = object_2;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java
new file mode 100644
index 000000000..1f28e1ce1
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java
@@ -0,0 +1,66 @@
+package me.shedaniel.rei.plugin;
+
+import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.rei.api.IRecipeCategory;
+import me.shedaniel.rei.gui.widget.IWidget;
+import me.shedaniel.rei.gui.widget.ItemSlotWidget;
+import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
+import me.shedaniel.rei.listeners.IMixinContainerGui;
+import net.minecraft.block.Blocks;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.render.GuiLighting;
+import net.minecraft.client.resource.language.I18n;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.util.Identifier;
+import net.minecraft.util.math.MathHelper;
+
+import java.awt.*;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+public class DefaultBrewingCategory implements IRecipeCategory<DefaultBrewingDisplay> {
+
+ private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png");
+
+ @Override
+ public Identifier getIdentifier() {
+ return DefaultPlugin.BREWING;
+ }
+
+ @Override
+ public ItemStack getCategoryIcon() {
+ return new ItemStack(Blocks.BREWING_STAND);
+ }
+
+ @Override
+ public String getCategoryName() {
+ return I18n.translate("category.rei.brewing");
+ }
+
+ @Override
+ public List<IWidget> setupDisplay(IMixinContainerGui containerGui, DefaultBrewingDisplay recipeDisplay, Rectangle bounds) {
+ Point startPoint = new Point((int) bounds.getCenterX() - 52, (int) bounds.getCenterY() - 29);
+ List<IWidget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) {
+ @Override
+ public void draw(int mouseX, int mouseY, float partialTicks) {
+ super.draw(mouseX, mouseY, partialTicks);
+ GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
+ GuiLighting.disable();
+ MinecraftClient.getInstance().getTextureManager().bindTexture(DISPLAY_TEXTURE);
+ drawTexturedRect(startPoint.x, startPoint.y, 0, 108, 103, 59);
+ int width = MathHelper.ceil((System.currentTimeMillis() / 250 % 18d) / 1f);
+ drawTexturedRect(startPoint.x + 44, startPoint.y + 28, 103, 163, width, 4);
+ }
+ }));
+ widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, containerGui, true));
+ widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, containerGui, true));
+ widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, containerGui, true));
+ widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, containerGui, true));
+ widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, containerGui, true));
+ widgets.add(new ItemSlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, containerGui, true));
+ return widgets;
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java
new file mode 100644
index 000000000..1b0057e11
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java
@@ -0,0 +1,54 @@
+package me.shedaniel.rei.plugin;
+
+import me.shedaniel.rei.api.IRecipeDisplay;
+import net.minecraft.block.Blocks;
+import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.Ingredient;
+import net.minecraft.recipe.Recipe;
+import net.minecraft.util.Identifier;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class DefaultBrewingDisplay implements IRecipeDisplay {
+
+ private ItemStack input, output;
+ private Ingredient reactant;
+
+ public DefaultBrewingDisplay(ItemStack input, Ingredient reactant, ItemStack output) {
+ this.input = input;
+ this.reactant = reactant;
+ this.output = output;
+ }
+
+ @Override
+ public Recipe getRecipe() {
+ return null;
+ }
+
+ @Override
+ public List<List<ItemStack>> getInput() {
+ return Arrays.asList(Arrays.asList(input), Arrays.asList(reactant.getStackArray()));
+ }
+
+ @Override
+ public List<ItemStack> getOutput() {
+ return Arrays.asList(output);
+ }
+
+ @Override
+ public Identifier getRecipeCategory() {
+ return DefaultPlugin.BREWING;
+ }
+
+ public List<ItemStack> getOutput(int slot) {
+ List<ItemStack> stack = new ArrayList<>();
+ for(int i = 0; i < slot * 2; i++)
+ stack.add(new ItemStack(Blocks.AIR));
+ for(int i = 0; i < 6 - slot * 2; i++)
+ stack.addAll(getOutput());
+ return stack;
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
index c2359e09b..6b9b6341f 100644
--- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -1,5 +1,7 @@
package me.shedaniel.rei.plugin;
+import com.google.common.collect.Lists;
+import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.IRecipePlugin;
import me.shedaniel.rei.client.RecipeHelper;
import net.minecraft.recipe.Recipe;
@@ -10,12 +12,21 @@ import net.minecraft.recipe.smelting.SmeltingRecipe;
import net.minecraft.recipe.smelting.SmokingRecipe;
import net.minecraft.util.Identifier;
+import java.util.List;
+
public class DefaultPlugin implements IRecipePlugin {
static final Identifier CRAFTING = new Identifier("roughlyenoughitems", "plugins/crafting");
static final Identifier SMELTING = new Identifier("roughlyenoughitems", "plugins/smelting");
static final Identifier SMOKING = new Identifier("roughlyenoughitems", "plugins/smoking");
static final Identifier BLASTING = new Identifier("roughlyenoughitems", "plugins/blasting");
+ static final Identifier BREWING = new Identifier("roughlyenoughitems", "plugins/brewing");
+
+ static final List<DefaultBrewingDisplay> BREWING_DISPLAYS = Lists.newArrayList();
+
+ public static void registerBrewingDisplay(DefaultBrewingDisplay display) {
+ BREWING_DISPLAYS.add(display);
+ }
@Override
public void registerPluginCategories() {
@@ -23,6 +34,7 @@ public class DefaultPlugin implements IRecipePlugin {
RecipeHelper.registerCategory(new DefaultSmeltingCategory());
RecipeHelper.registerCategory(new DefaultSmokingCategory());
RecipeHelper.registerCategory(new DefaultBlastingCategory());
+ RecipeHelper.registerCategory(new DefaultBrewingCategory());
}
@Override
@@ -38,6 +50,8 @@ public class DefaultPlugin implements IRecipePlugin {
RecipeHelper.registerRecipe(SMOKING, new DefaultSmokingDisplay((SmokingRecipe) value));
else if (value instanceof BlastingRecipe)
RecipeHelper.registerRecipe(BLASTING, new DefaultBlastingDisplay((BlastingRecipe) value));
+ BREWING_DISPLAYS.forEach(display -> RecipeHelper.registerRecipe(BREWING, display));
+ RoughlyEnoughItemsCore.LOGGER.info("bad lol " + BREWING_DISPLAYS.size());
}
}