Skip to content

Commit

Permalink
Only initialize the HandlerTransitRequest item map if we have any ite…
Browse files Browse the repository at this point in the history
…ms in it
  • Loading branch information
pupnewfster committed Apr 5, 2024
1 parent eac6619 commit e022c13
Showing 1 changed file with 6 additions and 3 deletions.
Expand Up @@ -4,6 +4,7 @@
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectIterator;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import mekanism.common.Mekanism;
Expand All @@ -14,14 +15,17 @@
public class HandlerTransitRequest extends TransitRequest {

private final IItemHandler handler;
private final Map<HashedItem, HandlerItemData> itemMap = new LinkedHashMap<>();
private Map<HashedItem, HandlerItemData> itemMap = Collections.emptyMap();

public HandlerTransitRequest(IItemHandler handler) {
this.handler = handler;
}

public void addItem(ItemStack stack, int slot) {
HashedItem hashed = HashedItem.create(stack);
if (itemMap.isEmpty()) {
itemMap = new LinkedHashMap<>();
}
itemMap.computeIfAbsent(hashed, HandlerItemData::new).addSlot(slot, stack);
}

Expand Down Expand Up @@ -62,8 +66,7 @@ public ItemStack use(int amount) {
if (handler != null && !slotMap.isEmpty()) {
HashedItem itemType = getItemType();
ItemStack itemStack = itemType.getInternalStack();
ObjectIterator<Int2IntMap.Entry> iterator = slotMap.int2IntEntrySet().iterator();
while (iterator.hasNext()) {
for (ObjectIterator<Int2IntMap.Entry> iterator = slotMap.int2IntEntrySet().iterator(); iterator.hasNext(); ) {
Int2IntMap.Entry entry = iterator.next();
int slot = entry.getIntKey();
int currentCount = entry.getIntValue();
Expand Down

0 comments on commit e022c13

Please sign in to comment.