aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-06-03 12:06:24 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-06-03 12:06:24 +0800
commitaa60fa3edadfbe3be18cbff9092db749fbb4bb97 (patch)
treec0e0d41411baa95f629eada363844550b3df2750 /src/main/java
parentd414c887e0c42325cf2e7c778b32e3fb13ee2e69 (diff)
downloadRoughlyEnoughItems-aa60fa3edadfbe3be18cbff9092db749fbb4bb97.tar.gz
RoughlyEnoughItems-aa60fa3edadfbe3be18cbff9092db749fbb4bb97.tar.bz2
RoughlyEnoughItems-aa60fa3edadfbe3be18cbff9092db749fbb4bb97.zip
Fix Craftable Filter having items of the player inventory
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java74
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java4
2 files changed, 39 insertions, 39 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
index 03be6d686..ff903278a 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
@@ -97,6 +97,39 @@ public class ItemListOverlay extends Widget {
return "ERROR";
}
+ public static boolean filterItem(ItemStack itemStack, List<SearchArgument[]> arguments) {
+ if (arguments.isEmpty())
+ return true;
+ String mod = ClientHelper.getInstance().getModFromItem(itemStack.getItem()).toLowerCase();
+ String tooltips = tryGetItemStackToolTip(itemStack, true).stream().skip(1).collect(Collectors.joining("")).replace(SPACE, EMPTY).toLowerCase();
+ String name = tryGetItemStackName(itemStack).replace(SPACE, EMPTY).toLowerCase();
+ for(SearchArgument[] arguments1 : arguments) {
+ boolean b = true;
+ for(SearchArgument argument : arguments1) {
+ if (argument.getArgumentType().equals(SearchArgument.ArgumentType.ALWAYS))
+ return true;
+ if (argument.getArgumentType().equals(SearchArgument.ArgumentType.MOD))
+ if (SearchArgument.getFunction(!argument.isInclude()).apply(mod.indexOf(argument.getText()))) {
+ b = false;
+ break;
+ }
+ if (argument.getArgumentType().equals(SearchArgument.ArgumentType.TOOLTIP))
+ if (SearchArgument.getFunction(!argument.isInclude()).apply(tooltips.indexOf(argument.getText()))) {
+ b = false;
+ break;
+ }
+ if (argument.getArgumentType().equals(SearchArgument.ArgumentType.TEXT))
+ if (SearchArgument.getFunction(!argument.isInclude()).apply(name.indexOf(argument.getText()))) {
+ b = false;
+ break;
+ }
+ }
+ if (b)
+ return true;
+ }
+ return false;
+ }
+
public int getFullTotalSlotsPerPage() {
return width * height;
}
@@ -242,13 +275,9 @@ public class ItemListOverlay extends Widget {
lastSearchArgument.add(new SearchArgument[]{SearchArgument.ALWAYS});
});
os.stream().filter(itemStack -> filterItem(itemStack, lastSearchArgument)).forEachOrdered(stacks::add);
- List<ItemStack> workingItems = RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && !stacks.isEmpty() && !inventoryItems.isEmpty() ? Lists.newArrayList() : Lists.newArrayList(ol);
- if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled()) {
- RecipeHelper.getInstance().findCraftableByItems(inventoryItems).forEach(workingItems::add);
- workingItems.addAll(inventoryItems);
- }
- if (!RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled())
+ if (!RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() || stacks.isEmpty() || inventoryItems.isEmpty())
return stacks;
+ List<ItemStack> workingItems = Lists.newArrayList(RecipeHelper.getInstance().findCraftableByItems(inventoryItems));
return stacks.stream().filter(itemStack -> workingItems.stream().anyMatch(stack -> stack.isEqualIgnoreTags(itemStack))).collect(Collectors.toList());
}
@@ -256,39 +285,6 @@ public class ItemListOverlay extends Widget {
return lastSearchArgument;
}
- public static boolean filterItem(ItemStack itemStack, List<SearchArgument[]> arguments) {
- if (arguments.isEmpty())
- return true;
- String mod = ClientHelper.getInstance().getModFromItem(itemStack.getItem()).toLowerCase();
- String tooltips = tryGetItemStackToolTip(itemStack, true).stream().skip(1).collect(Collectors.joining("")).replace(SPACE, EMPTY).toLowerCase();
- String name = tryGetItemStackName(itemStack).replace(SPACE, EMPTY).toLowerCase();
- for(SearchArgument[] arguments1 : arguments) {
- boolean b = true;
- for(SearchArgument argument : arguments1) {
- if (argument.getArgumentType().equals(SearchArgument.ArgumentType.ALWAYS))
- return true;
- if (argument.getArgumentType().equals(SearchArgument.ArgumentType.MOD))
- if (SearchArgument.getFunction(!argument.isInclude()).apply(mod.indexOf(argument.getText()))) {
- b = false;
- break;
- }
- if (argument.getArgumentType().equals(SearchArgument.ArgumentType.TOOLTIP))
- if (SearchArgument.getFunction(!argument.isInclude()).apply(tooltips.indexOf(argument.getText()))) {
- b = false;
- break;
- }
- if (argument.getArgumentType().equals(SearchArgument.ArgumentType.TEXT))
- if (SearchArgument.getFunction(!argument.isInclude()).apply(name.indexOf(argument.getText()))) {
- b = false;
- break;
- }
- }
- if (b)
- return true;
- }
- return false;
- }
-
private boolean filterItem(ItemStack itemStack, SearchArgument... arguments) {
if (arguments.length == 0)
return true;
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java
index c5bdb84c2..60b83b611 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java
@@ -11,6 +11,10 @@ import net.minecraft.item.ItemStack;
import java.util.Collection;
import java.util.List;
+/**
+ * @deprecated Use {@link SlotWidget}
+ */
+@Deprecated
public class ItemSlotWidget extends SlotWidget {
public ItemSlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips) {
super(x, y, itemStack, drawBackground, showToolTips);