From 100c6fe20e6d457bb700b4537dc3a68d36f9eeff Mon Sep 17 00:00:00 2001 From: Sefiraat Date: Fri, 14 Jan 2022 13:40:49 +0000 Subject: [PATCH] Cache barrels - performance boost --- .../sefiraat/networks/network/NetworkRoot.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java b/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java index f85f562e..8f696fad 100644 --- a/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java +++ b/src/main/java/io/github/sefiraat/networks/network/NetworkRoot.java @@ -1,5 +1,6 @@ package io.github.sefiraat.networks.network; +import io.github.mooy1.infinityexpansion.items.storage.StorageCache; import io.github.mooy1.infinityexpansion.items.storage.StorageUnit; import io.github.sefiraat.networks.Networks; import io.github.sefiraat.networks.network.barrel.InfinityBarrel; @@ -47,6 +48,7 @@ public class NetworkRoot extends NetworkNode { protected final Set networkGrabbers = new HashSet<>(); protected final Set networkPushers = new HashSet<>(); protected final Set networkPurgers = new HashSet<>(); + protected Set barrels = null; public NetworkRoot(Location location, NodeType type) { super(location, type); @@ -172,8 +174,13 @@ public Map getAllNetworkItems() { @Nonnull public Set getBarrels() { + + if (this.barrels != null) { + return this.barrels; + } + final Set addedLocations = new HashSet<>(); - final Set barrelItemMap = new HashSet<>(); + final Set barrelSet = new HashSet<>(); for (Location cellLocation : networkMonitors) { final BlockFace face = NetworkDirectional.getSelectedFace(cellLocation); @@ -198,7 +205,7 @@ public Set getBarrels() { BlockMenu menu = BlockStorage.getInventory(testLocation); InfinityBarrel infinityBarrel = getInfinityBarrel(menu, unit); if (infinityBarrel != null) { - barrelItemMap.add(infinityBarrel); + barrelSet.add(infinityBarrel); } continue; } @@ -207,13 +214,14 @@ public Set getBarrels() { BlockMenu menu = BlockStorage.getInventory(testLocation); NetworkShell shell = getShell(menu); if (shell != null) { - barrelItemMap.add(shell); + barrelSet.add(shell); } } } - return barrelItemMap; + this.barrels = barrelSet; + return barrelSet; } @Nullable