diff --git a/src/main/java/storagecraft/gui/GuiImporter.java b/src/main/java/storagecraft/gui/GuiImporter.java index ac3e3e5ae..1eeb0128a 100644 --- a/src/main/java/storagecraft/gui/GuiImporter.java +++ b/src/main/java/storagecraft/gui/GuiImporter.java @@ -2,8 +2,8 @@ package storagecraft.gui; import storagecraft.container.ContainerImporter; import storagecraft.gui.sidebutton.SideButtonCompare; -import storagecraft.gui.sidebutton.SideButtonWhitelistBlacklist; import storagecraft.gui.sidebutton.SideButtonRedstoneMode; +import storagecraft.gui.sidebutton.SideButtonWhitelistBlacklist; import storagecraft.tile.TileImporter; import storagecraft.util.InventoryUtils; @@ -23,10 +23,10 @@ public class GuiImporter extends GuiBase { addSideButton(new SideButtonRedstoneMode(importer)); + addSideButton(new SideButtonWhitelistBlacklist(importer)); + addSideButton(new SideButtonCompare(importer, InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(importer, InventoryUtils.COMPARE_NBT)); - - addSideButton(new SideButtonWhitelistBlacklist(importer)); } @Override diff --git a/src/main/java/storagecraft/gui/GuiStorage.java b/src/main/java/storagecraft/gui/GuiStorage.java index f596597f6..cd5f52f04 100644 --- a/src/main/java/storagecraft/gui/GuiStorage.java +++ b/src/main/java/storagecraft/gui/GuiStorage.java @@ -6,6 +6,7 @@ import net.minecraft.client.gui.GuiTextField; import storagecraft.container.ContainerStorage; import storagecraft.gui.sidebutton.SideButtonCompare; import storagecraft.gui.sidebutton.SideButtonRedstoneMode; +import storagecraft.gui.sidebutton.SideButtonWhitelistBlacklist; import storagecraft.storage.IStorageGui; import storagecraft.util.InventoryUtils; @@ -35,6 +36,11 @@ public class GuiStorage extends GuiBase addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeSetting())); } + if (gui.getWhitelistBlacklistSetting() != null) + { + addSideButton(new SideButtonWhitelistBlacklist(gui.getWhitelistBlacklistSetting())); + } + if (gui.getCompareSetting() != null) { addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_DAMAGE)); diff --git a/src/main/java/storagecraft/storage/IStorageGui.java b/src/main/java/storagecraft/storage/IStorageGui.java index db66bb8a7..e7a7eb9fc 100644 --- a/src/main/java/storagecraft/storage/IStorageGui.java +++ b/src/main/java/storagecraft/storage/IStorageGui.java @@ -3,6 +3,7 @@ package storagecraft.storage; import net.minecraft.inventory.IInventory; import storagecraft.tile.ICompareSetting; import storagecraft.tile.IRedstoneModeSetting; +import storagecraft.tile.IWhitelistBlacklistSetting; public interface IStorageGui { @@ -21,6 +22,8 @@ public interface IStorageGui public ICompareSetting getCompareSetting(); + public IWhitelistBlacklistSetting getWhitelistBlacklistSetting(); + public int getStored(); public int getCapacity(); diff --git a/src/main/java/storagecraft/tile/TileExternalStorage.java b/src/main/java/storagecraft/tile/TileExternalStorage.java index 777adcbe8..383fefdc8 100644 --- a/src/main/java/storagecraft/tile/TileExternalStorage.java +++ b/src/main/java/storagecraft/tile/TileExternalStorage.java @@ -17,15 +17,17 @@ import storagecraft.storage.IStorageProvider; import storagecraft.storage.StorageItem; import storagecraft.util.InventoryUtils; -public class TileExternalStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting +public class TileExternalStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting, IWhitelistBlacklistSetting { public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; + public static final String NBT_MODE = "Mode"; private InventorySimple inventory = new InventorySimple("external_storage", 9); private int priority = 0; private int compare = 0; + private int mode = 0; @SideOnly(Side.CLIENT) private int stored = 0; @@ -145,6 +147,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider buf.writeInt(priority); buf.writeInt(getConnectedInventory() == null ? 0 : InventoryUtils.getInventoryItems(getConnectedInventory())); buf.writeInt(compare); + buf.writeInt(mode); } @Override @@ -155,6 +158,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider priority = buf.readInt(); stored = buf.readInt(); compare = buf.readInt(); + mode = buf.readInt(); } @Override @@ -173,6 +177,11 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider { compare = nbt.getInteger(NBT_COMPARE); } + + if (nbt.hasKey(NBT_MODE)) + { + mode = nbt.getInteger(NBT_MODE); + } } @Override @@ -184,6 +193,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider nbt.setInteger(NBT_PRIORITY, priority); nbt.setInteger(NBT_COMPARE, compare); + nbt.setInteger(NBT_MODE, mode); } @Override @@ -198,6 +208,30 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider this.compare = compare; } + @Override + public boolean isWhitelist() + { + return mode == 0; + } + + @Override + public boolean isBlacklist() + { + return mode == 1; + } + + @Override + public void setToWhitelist() + { + this.mode = 0; + } + + @Override + public void setToBlacklist() + { + this.mode = 1; + } + @Override public int getPriority() { @@ -239,6 +273,12 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider return this; } + @Override + public IWhitelistBlacklistSetting getWhitelistBlacklistSetting() + { + return this; + } + @Override public int getStored() { diff --git a/src/main/java/storagecraft/tile/TileStorage.java b/src/main/java/storagecraft/tile/TileStorage.java index b9eeeb40c..506dd03a1 100644 --- a/src/main/java/storagecraft/tile/TileStorage.java +++ b/src/main/java/storagecraft/tile/TileStorage.java @@ -19,11 +19,12 @@ import storagecraft.storage.NBTStorage; import storagecraft.storage.StorageItem; import storagecraft.util.InventoryUtils; -public class TileStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting +public class TileStorage extends TileMachine implements IStorageProvider, IStorage, IStorageGui, ICompareSetting, IWhitelistBlacklistSetting { public static final String NBT_STORAGE = "Storage"; public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; + public static final String NBT_MODE = "Mode"; private InventorySimple inventory = new InventorySimple("storage", 9); @@ -31,6 +32,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora private int priority = 0; private int compare = 0; + private int mode = 0; @SideOnly(Side.CLIENT) private int stored; @@ -73,6 +75,11 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora { compare = nbt.getInteger(NBT_COMPARE); } + + if (nbt.hasKey(NBT_MODE)) + { + mode = nbt.getInteger(NBT_MODE); + } } @Override @@ -85,6 +92,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora nbt.setTag(NBT_STORAGE, tag); nbt.setInteger(NBT_PRIORITY, priority); nbt.setInteger(NBT_COMPARE, compare); + nbt.setInteger(NBT_MODE, mode); } public EnumStorageType getType() @@ -100,6 +108,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora buf.writeInt(NBTStorage.getStored(tag)); buf.writeInt(priority); buf.writeInt(compare); + buf.writeInt(mode); } @Override @@ -110,6 +119,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora stored = buf.readInt(); priority = buf.readInt(); compare = buf.readInt(); + mode = buf.readInt(); } @Override @@ -156,6 +166,30 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora this.compare = compare; } + @Override + public boolean isWhitelist() + { + return mode == 0; + } + + @Override + public boolean isBlacklist() + { + return mode == 1; + } + + @Override + public void setToWhitelist() + { + this.mode = 0; + } + + @Override + public void setToBlacklist() + { + this.mode = 1; + } + @Override public String getName() { @@ -180,6 +214,12 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora return this; } + @Override + public IWhitelistBlacklistSetting getWhitelistBlacklistSetting() + { + return this; + } + @Override public IPriorityHandler getPriorityHandler() {