From ed36b3a2bb3662aeba7afc57e8116706f4d25da2 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 13 Apr 2022 20:28:44 +0800 Subject: Make ctrl-click transfer less laggy --- .../main/java/me/shedaniel/rei/api/common/util/EntryStacks.java | 5 +++-- .../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 bridge : EntryTypeRegistry.getInstance().getBridgesFor(leftType, rightType)) { + EntryTypeRegistry instance = EntryTypeRegistry.getInstance(); + for (EntryTypeBridge bridge : instance.getBridgesFor(leftType, rightType)) { CompoundEventResult>> holder = bridge.bridge(left); if (holder.isTrue()) { Iterator> iterator = holder.object().iterator(); @@ -98,7 +99,7 @@ public final class EntryStacks { } } } - for (EntryTypeBridge bridge : EntryTypeRegistry.getInstance().getBridgesFor(rightType, leftType)) { + for (EntryTypeBridge bridge : instance.getBridgesFor(rightType, leftType)) { CompoundEventResult>> holder = bridge.bridge(right); if (holder.isTrue()) { Iterator> 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 displays : DisplayRegistry.getInstance().getAll().values()) { for (Display display : displays) { if (ViewsImpl.isRecipesFor(getEntries(), display)) { -- cgit