aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/Renderer.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-06-18 20:07:38 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-06-18 20:07:38 +0800
commit609c2238e12ad9835c449cd9f9da842ca747d5dc (patch)
tree87d52715819b31543afe88137cd196ce6d7e9cad /src/main/java/me/shedaniel/rei/api/Renderer.java
parent4f3a2eae017efe3ff6896f5c01d58c7b1a27d814 (diff)
downloadRoughlyEnoughItems-609c2238e12ad9835c449cd9f9da842ca747d5dc.tar.gz
RoughlyEnoughItems-609c2238e12ad9835c449cd9f9da842ca747d5dc.tar.bz2
RoughlyEnoughItems-609c2238e12ad9835c449cd9f9da842ca747d5dc.zip
nah let's break everyone's plugins
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/Renderer.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/Renderer.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java
index d3ddab934..43d4c55b3 100644
--- a/src/main/java/me/shedaniel/rei/api/Renderer.java
+++ b/src/main/java/me/shedaniel/rei/api/Renderer.java
@@ -5,10 +5,74 @@
package me.shedaniel.rei.api;
+import me.shedaniel.rei.gui.renderables.EmptyRenderer;
+import me.shedaniel.rei.gui.renderables.ItemStackRenderer;
+import me.shedaniel.rei.gui.renderables.SimpleRecipeRenderer;
import net.minecraft.client.gui.DrawableHelper;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.math.MathHelper;
+
+import java.util.List;
+import java.util.function.Supplier;
public abstract class Renderer extends DrawableHelper {
/**
+ * Gets an item stack renderer by an item stack supplier
+ *
+ * @param supplier the supplier for getting the item stack
+ * @return the item stack renderer
+ */
+ public static ItemStackRenderer fromItemStackSupplier(Supplier<ItemStack> supplier) {
+ return new ItemStackRenderer() {
+ @Override
+ public ItemStack getItemStack() {
+ return supplier.get();
+ }
+ };
+ }
+
+ /**
+ * Gets an item stack renderer by an item stack
+ *
+ * @param stack the item stack to be displayed
+ * @return the item stack renderer
+ */
+ public static ItemStackRenderer fromItemStack(ItemStack stack) {
+ return fromItemStackSupplier(() -> stack);
+ }
+
+ /**
+ * Gets an empty renderer
+ *
+ * @return an empty renderer
+ */
+ public static EmptyRenderer empty() {
+ return EmptyRenderer.INSTANCE;
+ }
+
+ /**
+ * Gets a simple recipe renderer from inputs and outputs
+ *
+ * @param input the list of input items
+ * @param output the list of output items
+ * @return the recipe renderer
+ */
+ public static SimpleRecipeRenderer fromRecipe(Supplier<List<List<ItemStack>>> input, Supplier<List<ItemStack>> output) {
+ return new SimpleRecipeRenderer(input, output);
+ }
+
+ public static ItemStackRenderer fromItemStacks(List<ItemStack> stacks) {
+ return new ItemStackRenderer() {
+ @Override
+ public ItemStack getItemStack() {
+ if (stacks.isEmpty())
+ return ItemStack.EMPTY;
+ return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f));
+ }
+ };
+ }
+
+ /**
* Gets the current blit offset
*
* @return the blit offset
@@ -36,4 +100,5 @@ public abstract class Renderer extends DrawableHelper {
* @param delta the delta
*/
public abstract void render(int x, int y, double mouseX, double mouseY, float delta);
+
}