diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-04-13 20:28:44 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-04-13 20:28:44 +0800 |
| commit | ed36b3a2bb3662aeba7afc57e8116706f4d25da2 (patch) | |
| tree | 8c6867449759e71cc9172ff48b800ad542a7a34b | |
| parent | 8902036eb80f33310079ddd8ea85212e2aebc6cb (diff) | |
| download | RoughlyEnoughItems-ed36b3a2bb3662aeba7afc57e8116706f4d25da2.tar.gz RoughlyEnoughItems-ed36b3a2bb3662aeba7afc57e8116706f4d25da2.tar.bz2 RoughlyEnoughItems-ed36b3a2bb3662aeba7afc57e8116706f4d25da2.zip | |
Make ctrl-click transfer less laggy
| -rw-r--r-- | api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java | 5 | ||||
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java index 632879b0d..979713683 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java @@ -86,7 +86,8 @@ public final class EntryStacks { if (leftType == rightType) { return left.getDefinition().equals(left.getValue(), right.castValue(), context); } - for (EntryTypeBridge<A, B> bridge : EntryTypeRegistry.getInstance().getBridgesFor(leftType, rightType)) { + EntryTypeRegistry instance = EntryTypeRegistry.getInstance(); + for (EntryTypeBridge<A, B> bridge : instance.getBridgesFor(leftType, rightType)) { CompoundEventResult<Stream<EntryStack<B>>> holder = bridge.bridge(left); if (holder.isTrue()) { Iterator<EntryStack<B>> iterator = holder.object().iterator(); @@ -98,7 +99,7 @@ public final class EntryStacks { } } } - for (EntryTypeBridge<B, A> bridge : EntryTypeRegistry.getInstance().getBridgesFor(rightType, leftType)) { + for (EntryTypeBridge<B, A> bridge : instance.getBridgesFor(rightType, leftType)) { CompoundEventResult<Stream<EntryStack<A>>> holder = bridge.bridge(right); if (holder.isTrue()) { Iterator<EntryStack<A>> iterator = holder.object().iterator(); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java index a7b762833..cde2ece23 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java @@ -670,10 +670,17 @@ public class EntryListWidget extends WidgetWithBounds implements OverlayListWidg lastCheckTime = -1; } - if (lastCheckTime != -1 && Util.getMillis() - lastCheckTime < 100) { + if (lastCheckTime != -1 && Util.getMillis() - lastCheckTime < 2000) { return null; } + return _getTransferHandler(); + } + + @Nullable + private TransferHandler _getTransferHandler() { + lastCheckTime = Util.getMillis(); + for (List<Display> displays : DisplayRegistry.getInstance().getAll().values()) { for (Display display : displays) { if (ViewsImpl.isRecipesFor(getEntries(), display)) { |
