whitelist / blacklist on external storage and storage block

This commit is contained in:
Raoul Van den Berge
2016-01-31 14:57:21 +01:00
parent 8c630b7d64
commit 4fa12c7930
5 changed files with 94 additions and 5 deletions

View File

@@ -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

View File

@@ -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));

View File

@@ -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();

View File

@@ -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()
{

View File

@@ -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()
{