aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2023-09-18 21:54:56 +0800
committershedaniel <daniel@shedaniel.me>2023-09-18 21:54:56 +0800
commit3dc4238eb7a61a992d37a98b9035a9101c022f42 (patch)
tree207b91704c121a222b3bbe29e28aee1ebb59efbe /api
parent8c03832d5ae716beba4047166505181cadd76e75 (diff)
parent6cc29c0b2cce285f34e5b48852560fbfe2c66424 (diff)
downloadRoughlyEnoughItems-3dc4238eb7a61a992d37a98b9035a9101c022f42.tar.gz
RoughlyEnoughItems-3dc4238eb7a61a992d37a98b9035a9101c022f42.tar.bz2
RoughlyEnoughItems-3dc4238eb7a61a992d37a98b9035a9101c022f42.zip
Merge remote-tracking branch 'shedaniel/9.x-1.19' into 11.x-1.19.4
Diffstat (limited to 'api')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java
index 818fdad8d..d9beed79a 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java
@@ -32,6 +32,7 @@ import me.shedaniel.rei.api.client.gui.widgets.Widgets;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.display.DisplayMerger;
+import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.Identifiable;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@@ -41,6 +42,7 @@ import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
@Environment(EnvType.CLIENT)
@@ -149,8 +151,8 @@ public interface DisplayCategory<T extends Display> extends DisplayCategoryView<
@Override
public boolean canMerge(T first, T second) {
if (!first.getCategoryIdentifier().equals(second.getCategoryIdentifier())) return false;
- if (!first.getInputEntries().equals(second.getInputEntries())) return false;
- if (!first.getOutputEntries().equals(second.getOutputEntries())) return false;
+ if (!equals(first.getInputEntries(), second.getInputEntries())) return false;
+ if (!equals(first.getOutputEntries(), second.getOutputEntries())) return false;
return true;
}
@@ -158,6 +160,16 @@ public interface DisplayCategory<T extends Display> extends DisplayCategoryView<
public int hashOf(T display) {
return display.getCategoryIdentifier().hashCode() * 31 * 31 * 31 + display.getInputEntries().hashCode() * 31 * 31 + display.getOutputEntries().hashCode();
}
+
+ private boolean equals(List<EntryIngredient> l1, List<EntryIngredient> l2) {
+ if (l1.size() != l2.size()) return false;
+ Iterator<EntryIngredient> it1 = l1.iterator();
+ Iterator<EntryIngredient> it2 = l2.iterator();
+ while (it1.hasNext() && it2.hasNext()) {
+ if (!it1.next().equals(it2.next())) return false;
+ }
+ return true;
+ }
};
}