From 1728ba7b83a5d310347d01d59b550c2724b508fe Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Sun, 12 Feb 2017 11:09:39 -0800 Subject: [PATCH] Migrate alchemy table blocking to a boolean array --- .../bloodmagic/tile/TileAlchemyTable.java | 41 +++++-------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java index f976fac7..0b643d2b 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java @@ -37,7 +37,7 @@ public class TileAlchemyTable extends TileInventory implements ISidedInventory, public int ticksRequired = 1; public BlockPos connectedPos = BlockPos.ORIGIN; - public List blockedSlots = new ArrayList(); + public boolean[] blockedSlots = new boolean[] { false, false, false, false, false, false }; public TileAlchemyTable() { @@ -60,28 +60,14 @@ public class TileAlchemyTable extends TileInventory implements ISidedInventory, return isSlave(); } - public boolean isInputSlotAccessible(int slot) - { - if (slot < 6 && slot >= 0) - { - return !blockedSlots.contains(slot); - } - - return true; + public boolean isInputSlotAccessible(int slot) { + return !(slot < 6 && slot >= 0) || !blockedSlots[slot]; } public void toggleInputSlotAccessible(int slot) { if (slot < 6 && slot >= 0) - { - if (blockedSlots.contains(slot)) - { - blockedSlots.remove((Object) slot); - } else - { - blockedSlots.add(slot); - } - } + blockedSlots[slot] = !blockedSlots[slot]; } @Override @@ -96,12 +82,9 @@ public class TileAlchemyTable extends TileInventory implements ISidedInventory, burnTime = tag.getInteger("burnTime"); ticksRequired = tag.getInteger("ticksRequired"); - blockedSlots.clear(); - int[] blockedSlotArray = tag.getIntArray("blockedSlots"); - for (int blocked : blockedSlotArray) - { - blockedSlots.add(blocked); - } + byte[] array = tag.getByteArray("blockedSlots"); + for (int i = 0; i < array.length; i++) + blockedSlots[i] = array[i] != 0; } @Override @@ -118,13 +101,11 @@ public class TileAlchemyTable extends TileInventory implements ISidedInventory, tag.setInteger("burnTime", burnTime); tag.setInteger("ticksRequired", ticksRequired); - int[] blockedSlotArray = new int[blockedSlots.size()]; - for (int i = 0; i < blockedSlots.size(); i++) - { - blockedSlotArray[i] = blockedSlots.get(i); - } + byte[] blockedSlotArray = new byte[blockedSlots.length]; + for (int i = 0; i < blockedSlots.length; i++) + blockedSlotArray[i] = (byte) (blockedSlots[i] ? 1 : 0); - tag.setIntArray("blockedSlots", blockedSlotArray); + tag.setByteArray("blockedSlots", blockedSlotArray); return tag; }