aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-04-13 20:28:44 +0800
committershedaniel <daniel@shedaniel.me>2022-04-13 20:28:44 +0800
commited36b3a2bb3662aeba7afc57e8116706f4d25da2 (patch)
tree8c6867449759e71cc9172ff48b800ad542a7a34b
parent8902036eb80f33310079ddd8ea85212e2aebc6cb (diff)
downloadRoughlyEnoughItems-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.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListWidget.java9
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)) {