aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api/Renderer.java
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-08-29 23:24:43 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-08-29 23:24:43 +0800
commit47ce58d320feedce57182ae0b88196bce518a57a (patch)
treed5ea5b0e4d5aa6590929e2a3c37c9d642f831aba /src/main/java/me/shedaniel/rei/api/Renderer.java
parentb960e33306056c126c3816ec471c58c3b5a7be7f (diff)
downloadRoughlyEnoughItems-47ce58d320feedce57182ae0b88196bce518a57a.tar.gz
RoughlyEnoughItems-47ce58d320feedce57182ae0b88196bce518a57a.tar.bz2
RoughlyEnoughItems-47ce58d320feedce57182ae0b88196bce518a57a.zip
We are out of beta
- Fix #149 - Close #148 - SlotWidget API improvement
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/Renderer.java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/Renderer.java79
1 files changed, 47 insertions, 32 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java
index eb327cef1..8c3a362af 100644
--- a/src/main/java/me/shedaniel/rei/api/Renderer.java
+++ b/src/main/java/me/shedaniel/rei/api/Renderer.java
@@ -9,12 +9,16 @@ import me.shedaniel.rei.gui.renderers.EmptyRenderer;
import me.shedaniel.rei.gui.renderers.FluidRenderer;
import me.shedaniel.rei.gui.renderers.ItemStackRenderer;
import me.shedaniel.rei.gui.renderers.SimpleRecipeRenderer;
+import me.shedaniel.rei.gui.widget.QueuedTooltip;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.fluid.Fluid;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
+import javax.annotation.Nullable;
+import java.util.Collections;
import java.util.List;
+import java.util.function.Function;
import java.util.function.Supplier;
public abstract class Renderer extends DrawableHelper {
@@ -25,12 +29,7 @@ public abstract class Renderer extends DrawableHelper {
* @return the item stack renderer
*/
public static ItemStackRenderer fromItemStackSupplier(Supplier<ItemStack> supplier) {
- return new ItemStackRenderer() {
- @Override
- public ItemStack getItemStack() {
- return supplier.get();
- }
- };
+ return fromItemStacks(() -> Collections.singletonList(supplier.get()), true, null);
}
/**
@@ -40,17 +39,7 @@ public abstract class Renderer extends DrawableHelper {
* @return the item stack renderer
*/
public static ItemStackRenderer fromItemStackSupplierNoCounts(Supplier<ItemStack> supplier) {
- return new ItemStackRenderer() {
- @Override
- public ItemStack getItemStack() {
- return supplier.get();
- }
-
- @Override
- protected boolean renderCounts() {
- return false;
- }
- };
+ return fromItemStacks(() -> Collections.singletonList(supplier.get()), false, null);
}
/**
@@ -60,14 +49,28 @@ public abstract class Renderer extends DrawableHelper {
* @return the item stack renderer
*/
public static ItemStackRenderer fromItemStack(ItemStack stack) {
- return fromItemStackSupplier(() -> stack);
+ return fromItemStacks(() -> Collections.singletonList(stack), true, null);
}
public static FluidRenderer fromFluid(Fluid fluid) {
+ return fromFluid(() -> fluid, null);
+ }
+
+ public static FluidRenderer fromFluid(Supplier<Fluid> fluidSupplier, @Nullable Function<Fluid, List<String>> extraTooltipSupplier) {
return new FluidRenderer() {
@Override
public Fluid getFluid() {
- return fluid;
+ return fluidSupplier.get();
+ }
+
+ @Override
+ protected List<String> getExtraToolTips(Fluid fluid) {
+ if (extraTooltipSupplier == null)
+ return super.getExtraToolTips(fluid);
+ List<String> apply = extraTooltipSupplier.apply(fluid);
+ if (apply == null)
+ return super.getExtraToolTips(fluid);
+ return apply;
}
};
}
@@ -79,7 +82,7 @@ public abstract class Renderer extends DrawableHelper {
* @return the item stack renderer
*/
public static ItemStackRenderer fromItemStackNoCounts(ItemStack stack) {
- return fromItemStackSupplierNoCounts(() -> stack);
+ return fromItemStacks(() -> Collections.singletonList(stack), false, null);
}
/**
@@ -103,32 +106,39 @@ public abstract class Renderer extends DrawableHelper {
}
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));
- }
- };
+ return fromItemStacks(() -> stacks, true, null);
}
- public static ItemStackRenderer fromItemStacksNoCounts(List<ItemStack> stacks) {
+ public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, boolean renderCounts, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier) {
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
- if (stacks.isEmpty())
+ if (stacksSupplier.get().isEmpty())
return ItemStack.EMPTY;
- return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f));
+ return stacksSupplier.get().get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacksSupplier.get().size()) / 1f));
}
@Override
protected boolean renderCounts() {
- return false;
+ return renderCounts;
+ }
+
+ @Override
+ protected List<String> getExtraToolTips(ItemStack stack) {
+ if (extraTooltipSupplier == null)
+ return super.getExtraToolTips(stack);
+ List<String> apply = extraTooltipSupplier.apply(stack);
+ if (apply == null)
+ return super.getExtraToolTips(stack);
+ return apply;
}
};
}
+ public static ItemStackRenderer fromItemStacksNoCounts(List<ItemStack> stacks) {
+ return fromItemStacks(() -> stacks, false, null);
+ }
+
/**
* Gets the current blit offset
*
@@ -158,4 +168,9 @@ public abstract class Renderer extends DrawableHelper {
*/
public abstract void render(int x, int y, double mouseX, double mouseY, float delta);
+ @Nullable
+ public QueuedTooltip getQueuedTooltip(float delta) {
+ return null;
+ }
+
}