make whitelist / blacklist an interface
This commit is contained in:
@@ -2,7 +2,7 @@ package storagecraft.gui;
|
||||
|
||||
import storagecraft.container.ContainerImporter;
|
||||
import storagecraft.gui.sidebutton.SideButtonCompare;
|
||||
import storagecraft.gui.sidebutton.SideButtonImporterMode;
|
||||
import storagecraft.gui.sidebutton.SideButtonWhitelistBlacklist;
|
||||
import storagecraft.gui.sidebutton.SideButtonRedstoneMode;
|
||||
import storagecraft.tile.TileImporter;
|
||||
import storagecraft.util.InventoryUtils;
|
||||
@@ -26,7 +26,7 @@ public class GuiImporter extends GuiBase
|
||||
addSideButton(new SideButtonCompare(importer, InventoryUtils.COMPARE_DAMAGE));
|
||||
addSideButton(new SideButtonCompare(importer, InventoryUtils.COMPARE_NBT));
|
||||
|
||||
addSideButton(new SideButtonImporterMode(importer));
|
||||
addSideButton(new SideButtonWhitelistBlacklist(importer));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
package storagecraft.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import storagecraft.StorageCraft;
|
||||
import storagecraft.gui.GuiBase;
|
||||
import storagecraft.network.MessageImporterModeUpdate;
|
||||
import storagecraft.tile.TileImporter;
|
||||
|
||||
public class SideButtonImporterMode extends SideButton
|
||||
{
|
||||
private TileImporter importer;
|
||||
|
||||
public SideButtonImporterMode(TileImporter importer)
|
||||
{
|
||||
this.importer = importer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTooltip(GuiBase gui)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append(EnumChatFormatting.GREEN).append(gui.t("sidebutton.storagecraft:importer.mode")).append(EnumChatFormatting.RESET).append("\n");
|
||||
|
||||
builder.append(gui.t("sidebutton.storagecraft:importer.mode." + importer.getMode()));
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(GuiBase gui, int x, int y)
|
||||
{
|
||||
gui.bindTexture("icons.png");
|
||||
gui.drawTexture(x, y + 1, importer.getMode() * 16, 64, 16, 16);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed()
|
||||
{
|
||||
StorageCraft.NETWORK.sendToServer(new MessageImporterModeUpdate(importer));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package storagecraft.gui.sidebutton;
|
||||
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import storagecraft.StorageCraft;
|
||||
import storagecraft.gui.GuiBase;
|
||||
import storagecraft.network.MessageWhitelistBlacklistToggle;
|
||||
import storagecraft.tile.IWhitelistBlacklistSetting;
|
||||
|
||||
public class SideButtonWhitelistBlacklist extends SideButton
|
||||
{
|
||||
private IWhitelistBlacklistSetting wb;
|
||||
|
||||
public SideButtonWhitelistBlacklist(IWhitelistBlacklistSetting wb)
|
||||
{
|
||||
this.wb = wb;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTooltip(GuiBase gui)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append(EnumChatFormatting.GREEN).append(gui.t("sidebutton.storagecraft:whitelist_blacklist")).append(EnumChatFormatting.RESET).append("\n");
|
||||
|
||||
builder.append(gui.t("sidebutton.storagecraft:whitelist_blacklist." + (wb.isWhitelist() ? "whitelist" : "blacklist")));
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(GuiBase gui, int x, int y)
|
||||
{
|
||||
gui.bindTexture("icons.png");
|
||||
|
||||
int tx = 0;
|
||||
|
||||
if (wb.isWhitelist())
|
||||
{
|
||||
tx = 0;
|
||||
}
|
||||
else if (wb.isBlacklist())
|
||||
{
|
||||
tx = 16;
|
||||
}
|
||||
|
||||
gui.drawTexture(x, y + 1, tx, 64, 16, 16);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed()
|
||||
{
|
||||
StorageCraft.NETWORK.sendToServer(new MessageWhitelistBlacklistToggle(wb));
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package storagecraft.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import storagecraft.tile.TileImporter;
|
||||
|
||||
public class MessageImporterModeUpdate extends MessageHandlerPlayerToServer<MessageImporterModeUpdate> implements IMessage
|
||||
{
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
|
||||
public MessageImporterModeUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
public MessageImporterModeUpdate(TileImporter importer)
|
||||
{
|
||||
this.x = importer.getPos().getX();
|
||||
this.y = importer.getPos().getY();
|
||||
this.z = importer.getPos().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf)
|
||||
{
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf)
|
||||
{
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageImporterModeUpdate message, EntityPlayerMP player)
|
||||
{
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileImporter)
|
||||
{
|
||||
TileImporter importer = (TileImporter) tile;
|
||||
|
||||
importer.setMode(importer.getMode() == TileImporter.MODE_WHITELIST ? TileImporter.MODE_BLACKLIST : TileImporter.MODE_WHITELIST);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package storagecraft.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import storagecraft.tile.IWhitelistBlacklistSetting;
|
||||
|
||||
public class MessageWhitelistBlacklistToggle extends MessageHandlerPlayerToServer<MessageWhitelistBlacklistToggle> implements IMessage
|
||||
{
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
|
||||
public MessageWhitelistBlacklistToggle()
|
||||
{
|
||||
}
|
||||
|
||||
public MessageWhitelistBlacklistToggle(IWhitelistBlacklistSetting wb)
|
||||
{
|
||||
this.x = wb.getMachinePos().getX();
|
||||
this.y = wb.getMachinePos().getY();
|
||||
this.z = wb.getMachinePos().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf)
|
||||
{
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf)
|
||||
{
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageWhitelistBlacklistToggle message, EntityPlayerMP player)
|
||||
{
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof IWhitelistBlacklistSetting)
|
||||
{
|
||||
IWhitelistBlacklistSetting wb = (IWhitelistBlacklistSetting) tile;
|
||||
|
||||
if (wb.isWhitelist())
|
||||
{
|
||||
wb.setToBlacklist();
|
||||
}
|
||||
else if (wb.isBlacklist())
|
||||
{
|
||||
wb.setToWhitelist();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public class CommonProxy
|
||||
StorageCraft.NETWORK.registerMessage(MessageStoragePush.class, MessageStoragePush.class, 2, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageStoragePull.class, MessageStoragePull.class, 3, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageCompareUpdate.class, MessageCompareUpdate.class, 4, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageImporterModeUpdate.class, MessageImporterModeUpdate.class, 5, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageWhitelistBlacklistToggle.class, MessageWhitelistBlacklistToggle.class, 5, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageDetectorModeUpdate.class, MessageDetectorModeUpdate.class, 6, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageDetectorAmountUpdate.class, MessageDetectorAmountUpdate.class, 7, Side.SERVER);
|
||||
StorageCraft.NETWORK.registerMessage(MessageGridCraftingUpdate.class, MessageGridCraftingUpdate.class, 8, Side.CLIENT);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package storagecraft.tile;
|
||||
|
||||
import net.minecraft.util.BlockPos;
|
||||
|
||||
public interface IWhitelistBlacklistSetting
|
||||
{
|
||||
public boolean isWhitelist();
|
||||
|
||||
public boolean isBlacklist();
|
||||
|
||||
public void setToWhitelist();
|
||||
|
||||
public void setToBlacklist();
|
||||
|
||||
public BlockPos getMachinePos();
|
||||
}
|
||||
@@ -12,18 +12,15 @@ import net.minecraft.util.IChatComponent;
|
||||
import storagecraft.inventory.InventorySimple;
|
||||
import storagecraft.util.InventoryUtils;
|
||||
|
||||
public class TileImporter extends TileMachine implements IInventory, ISidedInventory, ICompareSetting
|
||||
public class TileImporter extends TileMachine implements IInventory, ISidedInventory, ICompareSetting, IWhitelistBlacklistSetting
|
||||
{
|
||||
public static final int MODE_WHITELIST = 0;
|
||||
public static final int MODE_BLACKLIST = 1;
|
||||
|
||||
public static final String NBT_COMPARE = "Compare";
|
||||
public static final String NBT_MODE = "Mode";
|
||||
|
||||
private InventorySimple inventory = new InventorySimple("importer", 9);
|
||||
|
||||
private int compare = 0;
|
||||
private int mode = MODE_WHITELIST;
|
||||
private int mode = 0;
|
||||
|
||||
private int currentSlot = 0;
|
||||
|
||||
@@ -102,11 +99,11 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven
|
||||
|
||||
if (InventoryUtils.compareStack(stack, slot, compare))
|
||||
{
|
||||
if (mode == MODE_WHITELIST)
|
||||
if (isWhitelist())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (mode == MODE_BLACKLIST)
|
||||
else if (isBlacklist())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -114,7 +111,7 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven
|
||||
}
|
||||
}
|
||||
|
||||
if (mode == MODE_WHITELIST)
|
||||
if (isWhitelist())
|
||||
{
|
||||
return slots == 0;
|
||||
}
|
||||
@@ -136,16 +133,28 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven
|
||||
this.compare = compare;
|
||||
}
|
||||
|
||||
public int getMode()
|
||||
@Override
|
||||
public boolean isWhitelist()
|
||||
{
|
||||
return mode;
|
||||
return mode == 0;
|
||||
}
|
||||
|
||||
public void setMode(int mode)
|
||||
@Override
|
||||
public boolean isBlacklist()
|
||||
{
|
||||
markDirty();
|
||||
return mode == 1;
|
||||
}
|
||||
|
||||
this.mode = mode;
|
||||
@Override
|
||||
public void setToWhitelist()
|
||||
{
|
||||
this.mode = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setToBlacklist()
|
||||
{
|
||||
this.mode = 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -52,9 +52,9 @@ sidebutton.storagecraft:sorting.type=Sorting Type
|
||||
sidebutton.storagecraft:sorting.type.0=Amount
|
||||
sidebutton.storagecraft:sorting.type.1=Name
|
||||
|
||||
sidebutton.storagecraft:importer.mode=Mode
|
||||
sidebutton.storagecraft:importer.mode.0=Whitelist
|
||||
sidebutton.storagecraft:importer.mode.1=Blacklist
|
||||
sidebutton.storagecraft:whitelist_blacklist=Mode
|
||||
sidebutton.storagecraft:whitelist_blacklist.whitelist=Whitelist
|
||||
sidebutton.storagecraft:whitelist_blacklist.blacklist=Blacklist
|
||||
|
||||
sidebutton.storagecraft:detector.mode=Mode
|
||||
sidebutton.storagecraft:detector.mode.0=Emit signal when under the amount
|
||||
|
||||
Reference in New Issue
Block a user