diff options
| author | shedaniel <daniel@shedaniel.me> | 2023-09-18 21:49:26 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2023-09-18 21:53:48 +0800 |
| commit | 6cc29c0b2cce285f34e5b48852560fbfe2c66424 (patch) | |
| tree | 4072a186209e57d31f96f40dad8ec6f6af7dccb4 /api/src/main/java/me/shedaniel | |
| parent | 0a154e6f91a1e233d9bbbe570d5781d58c43066c (diff) | |
| download | RoughlyEnoughItems-6cc29c0b2cce285f34e5b48852560fbfe2c66424.tar.gz RoughlyEnoughItems-6cc29c0b2cce285f34e5b48852560fbfe2c66424.tar.bz2 RoughlyEnoughItems-6cc29c0b2cce285f34e5b48852560fbfe2c66424.zip | |
Fix #1465
Diffstat (limited to 'api/src/main/java/me/shedaniel')
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayCategory.java | 16 |
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; + } }; } |
