Process sub-selection of render jobs in displayed order (fixes #488)

This commit is contained in:
Jonas Herzig
2021-02-17 03:33:14 +01:00
parent 6d0d50f5b3
commit 5f0218929b

View File

@@ -48,6 +48,7 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Collectors;
import static com.replaymod.render.ReplayModRender.LOGGER; import static com.replaymod.render.ReplayModRender.LOGGER;
@@ -151,8 +152,11 @@ public class GuiRenderQueue extends AbstractGuiPopup<GuiRenderQueue> implements
if (selectedEntries.isEmpty()) { if (selectedEntries.isEmpty()) {
renderQueue.addAll(jobs); renderQueue.addAll(jobs);
} else { } else {
for (Entry entry : selectedEntries) { Set<RenderJob> selectedJobs = selectedEntries.stream().map(it -> it.job).collect(Collectors.toSet());
renderQueue.add(entry.job); for (RenderJob job : jobs) {
if (selectedJobs.contains(job)) {
renderQueue.add(job);
}
} }
} }
ReplayMod.instance.runLaterWithoutLock(() -> processQueue(container, replayHandler, renderQueue, () -> {})); ReplayMod.instance.runLaterWithoutLock(() -> processQueue(container, replayHandler, renderQueue, () -> {}));