From 5f0218929b70267f0ca8c9bdfc90979443d6f2fd Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Wed, 17 Feb 2021 03:33:14 +0100 Subject: [PATCH] Process sub-selection of render jobs in displayed order (fixes #488) --- .../java/com/replaymod/render/gui/GuiRenderQueue.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderQueue.java b/src/main/java/com/replaymod/render/gui/GuiRenderQueue.java index 13f3b423..7cd0a6cd 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderQueue.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderQueue.java @@ -48,6 +48,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.function.Supplier; +import java.util.stream.Collectors; import static com.replaymod.render.ReplayModRender.LOGGER; @@ -151,8 +152,11 @@ public class GuiRenderQueue extends AbstractGuiPopup implements if (selectedEntries.isEmpty()) { renderQueue.addAll(jobs); } else { - for (Entry entry : selectedEntries) { - renderQueue.add(entry.job); + Set selectedJobs = selectedEntries.stream().map(it -> it.job).collect(Collectors.toSet()); + for (RenderJob job : jobs) { + if (selectedJobs.contains(job)) { + renderQueue.add(job); + } } } ReplayMod.instance.runLaterWithoutLock(() -> processQueue(container, replayHandler, renderQueue, () -> {}));