From 609c2238e12ad9835c449cd9f9da842ca747d5dc Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Jun 2019 20:07:38 +0800 Subject: nah let's break everyone's plugins --- src/main/java/me/shedaniel/rei/api/Renderer.java | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'src/main/java/me/shedaniel/rei/api/Renderer.java') 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,9 +5,73 @@ 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 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>> input, Supplier> output) { + return new SimpleRecipeRenderer(input, output); + } + + public static ItemStackRenderer fromItemStacks(List 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 * @@ -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); + } -- cgit