From b36f9cd3b5510373832a5d59bb239beecd19a1dc Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Fri, 4 Oct 2019 14:19:57 +0200 Subject: [PATCH] Huge stability and performance improvements (Ticks are skipped upon lag) --- .../Slimefun/api/item_transport/CargoNet.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java b/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java index 15afb70a0..3a9b4b5bd 100644 --- a/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java +++ b/src/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java @@ -155,30 +155,35 @@ public class CargoNet extends Network { final Map> output = new HashMap<>(); - Set combinedOutputNodes = outputNodes; + Set combinedOutputNodes = new HashSet<>(); + combinedOutputNodes.addAll(outputNodes); combinedOutputNodes.addAll(advancedOutputNodes); List list = new ArrayList<>(); int lastFrequency = -1; + for (Location outputNode: combinedOutputNodes) { Integer frequency = getFrequency(outputNode); list.add(outputNode); if (frequency != lastFrequency && lastFrequency != -1) { - output.merge(frequency, list, (list1, list2) -> { - list1.addAll(list2); - return list1; + output.merge(lastFrequency, list, (prev, next) -> { + prev.addAll(next); + return prev; }); + list.clear(); } lastFrequency = frequency; } - if (!list.isEmpty()) - output.merge(lastFrequency, list, (list1, list2) -> { - list1.addAll(list2); - return list1; + + if (!list.isEmpty()) { + output.merge(lastFrequency, list, (prev, next) -> { + prev.addAll(next); + return prev; }); + } //Chest Terminal Stuff final Set providers = new HashSet<>();