aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-09-07 14:17:46 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-09-07 14:17:46 +0800
commit6e2791f101af396f2af3974a86e1e2062c7669e6 (patch)
tree8f19a11f9e5db862746d8b149542952214e28b64 /src/main/java
parentc57cbacf7712028ef225a3167593272c8b633dcb (diff)
downloadRoughlyEnoughItems-6e2791f101af396f2af3974a86e1e2062c7669e6.tar.gz
RoughlyEnoughItems-6e2791f101af396f2af3974a86e1e2062c7669e6.tar.bz2
RoughlyEnoughItems-6e2791f101af396f2af3974a86e1e2062c7669e6.zip
Clean up & stack count function
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/api/Renderer.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java7
-rw-r--r--src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java7
-rw-r--r--src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java34
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java5
8 files changed, 50 insertions, 29 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java
index 8c3a362af..3f5c2f03d 100644
--- a/src/main/java/me/shedaniel/rei/api/Renderer.java
+++ b/src/main/java/me/shedaniel/rei/api/Renderer.java
@@ -110,6 +110,10 @@ public abstract class Renderer extends DrawableHelper {
}
public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, boolean renderCounts, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier) {
+ return fromItemStacks(stacksSupplier, stack -> renderCounts ? null : "", extraTooltipSupplier);
+ }
+
+ public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, Function<ItemStack, String> countsFunction, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier) {
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
@@ -119,8 +123,8 @@ public abstract class Renderer extends DrawableHelper {
}
@Override
- protected boolean renderCounts() {
- return renderCounts;
+ protected String getCounts() {
+ return countsFunction.apply(getItemStack());
}
@Override
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 63b860136..8fee4b2bd 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -40,6 +40,7 @@ import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.GameMode;
+import javax.annotation.Nullable;
import java.util.*;
import java.util.stream.Collectors;
@@ -458,8 +459,9 @@ public class ContainerScreenOverlay extends Widget {
return list1.stream().map(Objects::toString).collect(Collectors.joining("")).equals(list2.stream().map(Objects::toString).collect(Collectors.joining("")));
}
- public void addTooltip(QueuedTooltip queuedTooltip) {
- QUEUED_TOOLTIPS.add(queuedTooltip);
+ public void addTooltip(@Nullable QueuedTooltip queuedTooltip) {
+ if (queuedTooltip != null)
+ QUEUED_TOOLTIPS.add(queuedTooltip);
}
public void renderWidgets(int int_1, int int_2, float float_1) {
diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
index 30d285e32..ac53cd35a 100644
--- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
@@ -305,12 +305,7 @@ public class RecipeViewingScreen extends Screen {
List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
xx += (innerWidth - 1) * 18;
for (List<ItemStack> workingStation : workingStations) {
- preWidgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(workingStation), true, true, true) {
- @Override
- protected List<String> getExtraItemToolTips(ItemStack stack) {
- return list;
- }
- });
+ preWidgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(() -> workingStation, true, stack -> list), true, true, true));
index++;
yy += 18;
if (index >= hh) {
diff --git a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
index e09a64b8f..9f2b0cc91 100644
--- a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
@@ -108,12 +108,7 @@ public class VillagerRecipeViewingScreen extends Screen {
int index = 0;
List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
for (List<ItemStack> workingStation : workingStations) {
- widgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(workingStation), true, true, true) {
- @Override
- protected List<String> getExtraItemToolTips(ItemStack stack) {
- return list;
- }
- });
+ widgets.add(new SlotWidget(xx, yy, Renderer.fromItemStacks(() -> workingStation, true, stack -> list), true, true, true));
index++;
xx += 18;
if (index >= ww) {
diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java
index c55be8b87..069c15af1 100644
--- a/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java
+++ b/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java
@@ -99,9 +99,9 @@ public abstract class FluidRenderer extends Renderer {
protected List<String> getTooltip(Fluid fluid) {
List<String> toolTip = Lists.newArrayList(EntryListWidget.tryGetFluidName(fluid));
+ toolTip.addAll(getExtraToolTips(fluid));
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().shouldAppendModNames()) {
final String modString = ClientHelper.getInstance().getFormattedModFromIdentifier(Registry.FLUID.getId(fluid));
- toolTip.addAll(getExtraToolTips(fluid));
boolean alreadyHasMod = false;
for (String s : toolTip)
if (s.equalsIgnoreCase(modString)) {
@@ -114,7 +114,7 @@ public abstract class FluidRenderer extends Renderer {
return toolTip;
}
- protected List<String> getExtraToolTips(Fluid stack) {
+ protected List<String> getExtraToolTips(Fluid fluid) {
return Collections.emptyList();
}
diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
index 67143c99e..106a85561 100644
--- a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
+++ b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
@@ -44,7 +44,7 @@ public abstract class ItemStackRenderer extends Renderer {
RenderHelper.enableRescaleNormal();
RenderHelper.enableDepthTest();
itemRenderer.renderGuiItem(getItemStack(), l, i1);
- itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1, renderCounts() ? null : "");
+ itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1, getCounts());
itemRenderer.zOffset = 0.0F;
this.blitOffset = 0;
}
@@ -71,11 +71,15 @@ public abstract class ItemStackRenderer extends Renderer {
return true;
}
+ protected String getCounts() {
+ return renderCounts() ? null : "";
+ }
+
protected List<String> getTooltip(ItemStack itemStack) {
List<String> toolTip = Lists.newArrayList(EntryListWidget.tryGetItemStackToolTip(itemStack, true));
+ toolTip.addAll(getExtraToolTips(itemStack));
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().shouldAppendModNames()) {
final String modString = ClientHelper.getInstance().getFormattedModFromItem(itemStack.getItem());
- toolTip.addAll(getExtraToolTips(itemStack));
boolean alreadyHasMod = false;
for (String s : toolTip)
if (s.equalsIgnoreCase(modString)) {
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
index 64512aa0a..e329a51aa 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
@@ -15,6 +15,8 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.*;
import me.shedaniel.rei.gui.config.ItemCheatingMode;
import me.shedaniel.rei.gui.config.ItemListOrdering;
+import me.shedaniel.rei.gui.renderers.FluidRenderer;
+import me.shedaniel.rei.gui.renderers.ItemStackRenderer;
import me.shedaniel.rei.impl.ScreenHelper;
import me.shedaniel.rei.impl.SearchArgument;
import net.minecraft.client.MinecraftClient;
@@ -37,6 +39,7 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.util.registry.Registry;
import org.apache.commons.lang3.StringUtils;
+import javax.annotation.Nullable;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@@ -343,7 +346,7 @@ public class EntryListWidget extends Widget {
ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.delete_items")));
}
- public void updateList(DisplayHelper.DisplayBoundsHandler boundsHandler, Rectangle rectangle, int page, String searchTerm, boolean processSearchTerm) {
+ public void updateList(DisplayHelper.DisplayBoundsHandler<?> boundsHandler, Rectangle rectangle, int page, String searchTerm, boolean processSearchTerm) {
this.rectangle = rectangle;
this.page = page;
this.widgets = Lists.newCopyOnWriteArrayList();
@@ -370,21 +373,38 @@ public class EntryListWidget extends Widget {
break;
final Entry entry = currentDisplayed.get(j - 1);
maxScroll = y + 18;
- widgets.add(new Slot(entry, xx, yy, x, y, entry.getEntryType() == Entry.Type.ITEM ? Renderer.fromItemStackNoCounts(entry.getItemStack()) : Renderer.fromFluid(entry.getFluid()), false, true, true) {
+ widgets.add(new Slot(entry, xx, yy, x, y, entry.getEntryType() == Entry.Type.ITEM ? new ItemStackRenderer() {
@Override
- protected void queueTooltip(ItemStack itemStack, float delta) {
+ public ItemStack getItemStack() {
+ return entry.getItemStack();
+ }
+
+ @Override
+ protected String getCounts() {
+ return "";
+ }
+
+ @Nullable
+ @Override
+ public QueuedTooltip getQueuedTooltip(float delta) {
ClientPlayerEntity player = minecraft.player;
if (!ClientHelper.getInstance().isCheating() || player.inventory.getCursorStack().isEmpty())
- super.queueTooltip(itemStack, delta);
+ return super.getQueuedTooltip(delta);
+ return null;
+ }
+ } : new FluidRenderer() {
+ @Override
+ public Fluid getFluid() {
+ return entry.getFluid();
}
@Override
- protected List<String> getExtraFluidToolTips(Fluid fluid) {
+ protected List<String> getExtraToolTips(Fluid fluid) {
if (MinecraftClient.getInstance().options.advancedItemTooltips)
return Collections.singletonList(Formatting.DARK_GRAY.toString() + Registry.FLUID.getId(fluid).toString());
- return super.getExtraFluidToolTips(fluid);
+ return super.getExtraToolTips(fluid);
}
-
+ }, false, true, true) {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (isCurrentRendererItem() && containsMouse(mouseX, mouseY)) {
diff --git a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
index 6769a7054..da04713c9 100644
--- a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
+++ b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
@@ -25,6 +25,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Supplier;
@@ -78,9 +79,9 @@ public class DefaultCraftingCategory implements TransferRecipeCategory<DefaultCr
for (int i = 0; i < input.size(); i++) {
if (recipeDisplaySupplier.get() instanceof DefaultShapedDisplay) {
if (!input.get(i).isEmpty())
- slots.get(getSlotWithSize(recipeDisplaySupplier.get(), i, 3)).setItemList(input.get(i));
+ slots.get(getSlotWithSize(recipeDisplaySupplier.get(), i, 3)).setRenderers(Collections.singletonList(Renderer.fromItemStacks(input.get(i))));
} else if (!input.get(i).isEmpty())
- slots.get(i).setItemList(input.get(i));
+ slots.get(i).setRenderers(Collections.singletonList(Renderer.fromItemStacks(input.get(i))));
}
widgets.addAll(slots);
widgets.add(new SlotWidget(startPoint.x + 95, startPoint.y + 19, Renderer.fromItemStacks(recipeDisplaySupplier.get().getOutput()), false, true, true));