aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-17 18:13:58 +0800
committershedaniel <daniel@shedaniel.me>2023-05-29 20:58:48 +0800
commit5852a898a083639e968b8deaa72f1089e77a67c5 (patch)
treeb2d22bef58d533ecaa35747784401e137bbf75bc /runtime/src/main/java
parent7e2232e54e1f257db211cae2efa7a9515fdd0039 (diff)
downloadRoughlyEnoughItems-5852a898a083639e968b8deaa72f1089e77a67c5.tar.gz
RoughlyEnoughItems-5852a898a083639e968b8deaa72f1089e77a67c5.tar.bz2
RoughlyEnoughItems-5852a898a083639e968b8deaa72f1089e77a67c5.zip
Fix duplicate display history
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java9
3 files changed, 14 insertions, 2 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
index 8dee3abe7..12171e4cc 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java
@@ -80,6 +80,10 @@ public class DisplayEntry extends WidgetWithBounds {
return uuid;
}
+ public void setUuid(UUID uuid) {
+ this.uuid = uuid;
+ }
+
public void markBoundsDirty() {
widgets.reset();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java
index 7f98c3122..87ef93cbe 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java
@@ -68,6 +68,7 @@ public class DisplayHistoryManager {
if (CategoryRegistry.getInstance().tryGet(categoryIdentifier).isPresent()) {
Display display = DisplaySerializerRegistry.getInstance().read(categoryIdentifier, tag.getCompound("DisplayHistoryData"));
DisplayEntry newEntry = new DisplayEntry(parent, display, null);
+ newEntry.setUuid(UUID.fromString(uuid));
entries.put(newEntry.getUuid().toString(), newEntry);
}
} catch (Exception e) {
@@ -109,7 +110,7 @@ public class DisplayHistoryManager {
compoundTag.putBoolean("DisplayHistoryContains", false);
compoundTag.putString("DisplayHistoryUUID", newEntry.getUuid().toString());
compoundTag.putString("DisplayHistoryCategory", display.getCategoryIdentifier().toString());
- displayHistory.add(compoundTag);
+ displayHistory.add(0, compoundTag);
save();
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java
index 530a93c56..16b5a6944 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java
@@ -64,6 +64,7 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC
private final FavoritesListWidget parent;
private final Rectangle bounds = new Rectangle();
private final NumberAnimator<Double> height;
+ private boolean ignoreNextMouse;
private final NumberAnimator<Double> scroll = ValueAnimator.ofDouble();
@@ -264,7 +265,7 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
for (DisplayEntry entry : DisplayHistoryManager.INSTANCE.getEntries(this)) {
- if (entry.mouseClicked(mouseX, mouseY, button)) {
+ if (!ignoreNextMouse && entry.mouseClicked(mouseX, mouseY, button)) {
return true;
}
}
@@ -274,6 +275,11 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC
@Override
public boolean mouseReleased(double mouseX, double mouseY, int button) {
+ if (ignoreNextMouse) {
+ ignoreNextMouse = false;
+ return true;
+ }
+
Collection<DisplayEntry> entries = DisplayHistoryManager.INSTANCE.getEntries(this);
for (DisplayEntry entry : entries) {
@@ -344,6 +350,7 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC
Point pos = context.getCurrentPosition();
if (containsMouse(pos)) {
addDisplay(context.getCurrentBounds().clone(), display);
+ ignoreNextMouse = true;
return true;
} else {
return false;