diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/Renderer.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/api/Renderer.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java index 5bd86e058..cb356be5e 100644 --- a/src/main/java/me/shedaniel/rei/api/Renderer.java +++ b/src/main/java/me/shedaniel/rei/api/Renderer.java @@ -20,6 +20,7 @@ import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.function.Supplier; +import java.util.stream.Collectors; public abstract class Renderer extends DrawableHelper { /** @@ -114,12 +115,17 @@ public abstract class Renderer extends DrawableHelper { } public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, @Nullable Function<ItemStack, String> countsFunction, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier) { + return fromItemStacks(stacksSupplier, countsFunction, extraTooltipSupplier, true); + } + + public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, @Nullable Function<ItemStack, String> countsFunction, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier, boolean renderOverlay) { + List<ItemStack> stacks = stacksSupplier.get().stream().map(ItemStack::copy).collect(Collectors.toList()); return new ItemStackRenderer() { @Override public ItemStack getItemStack() { - if (stacksSupplier.get().isEmpty()) + if (stacks.isEmpty()) return ItemStack.EMPTY; - return stacksSupplier.get().get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacksSupplier.get().size()) / 1f)); + return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f)); } @Override @@ -128,6 +134,11 @@ public abstract class Renderer extends DrawableHelper { } @Override + protected boolean renderOverlay() { + return renderOverlay; + } + + @Override protected List<String> getExtraToolTips(ItemStack stack) { if (extraTooltipSupplier == null) return super.getExtraToolTips(stack); |
