add whitelist / blacklist to importer and fix some code
This commit is contained in:
@@ -12,6 +12,6 @@ public class ContainerImporter extends ContainerBase {
|
|||||||
addSlotToContainer(new SlotSpecimen(importer, i, 8 + (18 * i), 20));
|
addSlotToContainer(new SlotSpecimen(importer, i, 8 + (18 * i), 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
addPlayerInventory(8, 100);
|
addPlayerInventory(8, 119);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -15,16 +15,15 @@ public class GuiImporter extends GuiMachine {
|
|||||||
|
|
||||||
private TileImporter importer;
|
private TileImporter importer;
|
||||||
|
|
||||||
private int compareFlags;
|
|
||||||
|
|
||||||
private GuiButton compareNBT;
|
private GuiButton compareNBT;
|
||||||
private GuiButton compareDamage;
|
private GuiButton compareDamage;
|
||||||
|
private GuiButton mode;
|
||||||
|
|
||||||
public GuiImporter(ContainerImporter container, TileImporter importer) {
|
public GuiImporter(ContainerImporter container, TileImporter importer) {
|
||||||
super(container, importer);
|
super(container, importer);
|
||||||
|
|
||||||
this.xSize = 176;
|
this.xSize = 176;
|
||||||
this.ySize = 182;
|
this.ySize = 201;
|
||||||
|
|
||||||
this.importer = importer;
|
this.importer = importer;
|
||||||
}
|
}
|
||||||
@@ -36,18 +35,18 @@ public class GuiImporter extends GuiMachine {
|
|||||||
int x = (this.width - xSize) / 2;
|
int x = (this.width - xSize) / 2;
|
||||||
int y = (this.height - ySize) / 2;
|
int y = (this.height - ySize) / 2;
|
||||||
|
|
||||||
buttonList.add(compareNBT = new GuiButton(1, x + 7, y + 41, 100, 20, "..."));
|
buttonList.add(compareNBT = new GuiButton(1, x + 7, y + 41, 100, 20, ""));
|
||||||
buttonList.add(compareDamage = new GuiButton(2, x + 7, y + 63, 120, 20, "..."));
|
buttonList.add(compareDamage = new GuiButton(2, x + 7, y + 63, 120, 20, ""));
|
||||||
|
buttonList.add(mode = new GuiButton(3, x + 7, y + 85, 80, 20, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateScreen() {
|
public void updateScreen() {
|
||||||
super.updateScreen();
|
super.updateScreen();
|
||||||
|
|
||||||
compareFlags = importer.getCompareFlags();
|
|
||||||
|
|
||||||
compareNBT.displayString = getTextForCompareToggle("NBT", InventoryUtils.COMPARE_NBT);
|
compareNBT.displayString = getTextForCompareToggle("NBT", InventoryUtils.COMPARE_NBT);
|
||||||
compareDamage.displayString = getTextForCompareToggle("Damage", InventoryUtils.COMPARE_DAMAGE);
|
compareDamage.displayString = getTextForCompareToggle("Damage", InventoryUtils.COMPARE_DAMAGE);
|
||||||
|
mode.displayString = StatCollector.translateToLocal("misc.storagecraft:importer.mode." + importer.getMode().id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getTextForCompareToggle(String which, int flag) {
|
private String getTextForCompareToggle(String which, int flag) {
|
||||||
@@ -56,7 +55,7 @@ public class GuiImporter extends GuiMachine {
|
|||||||
builder.append(StatCollector.translateToLocal("misc.storagecraft:compare" + which));
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:compare" + which));
|
||||||
builder.append(": ");
|
builder.append(": ");
|
||||||
|
|
||||||
if ((compareFlags & flag) == flag) {
|
if ((importer.getCompareFlags() & flag) == flag) {
|
||||||
builder.append(StatCollector.translateToLocal("misc.storagecraft:on"));
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:on"));
|
||||||
} else {
|
} else {
|
||||||
builder.append(StatCollector.translateToLocal("misc.storagecraft:off"));
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:off"));
|
||||||
@@ -79,14 +78,14 @@ public class GuiImporter extends GuiMachine {
|
|||||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
|
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:importer"), 7, 7, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:importer"), 7, 7, 4210752);
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 89, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 108, 4210752);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void actionPerformed(GuiButton button) {
|
protected void actionPerformed(GuiButton button) {
|
||||||
super.actionPerformed(button);
|
super.actionPerformed(button);
|
||||||
|
|
||||||
int flags = compareFlags;
|
int flags = importer.getCompareFlags();
|
||||||
|
|
||||||
if (button.id == compareNBT.id) {
|
if (button.id == compareNBT.id) {
|
||||||
flags ^= InventoryUtils.COMPARE_NBT;
|
flags ^= InventoryUtils.COMPARE_NBT;
|
||||||
@@ -94,6 +93,6 @@ public class GuiImporter extends GuiMachine {
|
|||||||
flags ^= InventoryUtils.COMPARE_DAMAGE;
|
flags ^= InventoryUtils.COMPARE_DAMAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageCraft.NETWORK.sendToServer(new MessageImporterUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags));
|
StorageCraft.NETWORK.sendToServer(new MessageImporterUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags, button.id == mode.id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,7 @@ public abstract class GuiMachine extends GuiContainer {
|
|||||||
|
|
||||||
lines.add(StatCollector.translateToLocal("misc.storagecraft:redstoneMode." + machine.getRedstoneMode().id));
|
lines.add(StatCollector.translateToLocal("misc.storagecraft:redstoneMode." + machine.getRedstoneMode().id));
|
||||||
|
|
||||||
this.drawHoveringText(lines, mx, my, fontRendererObj);
|
drawHoveringText(lines, mx, my, fontRendererObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,15 +13,17 @@ public class MessageImporterUpdate implements IMessage, IMessageHandler<MessageI
|
|||||||
private int y;
|
private int y;
|
||||||
private int z;
|
private int z;
|
||||||
private int compareFlags;
|
private int compareFlags;
|
||||||
|
private boolean nextMode;
|
||||||
|
|
||||||
public MessageImporterUpdate() {
|
public MessageImporterUpdate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageImporterUpdate(int x, int y, int z, int compareFlags) {
|
public MessageImporterUpdate(int x, int y, int z, int compareFlags, boolean nextMode) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
this.z = z;
|
this.z = z;
|
||||||
this.compareFlags = compareFlags;
|
this.compareFlags = compareFlags;
|
||||||
|
this.nextMode = nextMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -30,6 +32,7 @@ public class MessageImporterUpdate implements IMessage, IMessageHandler<MessageI
|
|||||||
y = buf.readInt();
|
y = buf.readInt();
|
||||||
z = buf.readInt();
|
z = buf.readInt();
|
||||||
compareFlags = buf.readInt();
|
compareFlags = buf.readInt();
|
||||||
|
nextMode = buf.readBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -38,6 +41,7 @@ public class MessageImporterUpdate implements IMessage, IMessageHandler<MessageI
|
|||||||
buf.writeInt(y);
|
buf.writeInt(y);
|
||||||
buf.writeInt(z);
|
buf.writeInt(z);
|
||||||
buf.writeInt(compareFlags);
|
buf.writeInt(compareFlags);
|
||||||
|
buf.writeBoolean(nextMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,7 +51,13 @@ public class MessageImporterUpdate implements IMessage, IMessageHandler<MessageI
|
|||||||
TileEntity tile = player.worldObj.getTileEntity(message.x, message.y, message.z);
|
TileEntity tile = player.worldObj.getTileEntity(message.x, message.y, message.z);
|
||||||
|
|
||||||
if (tile instanceof TileImporter) {
|
if (tile instanceof TileImporter) {
|
||||||
((TileImporter) tile).setCompareFlags(message.compareFlags);
|
TileImporter importer = (TileImporter) tile;
|
||||||
|
|
||||||
|
importer.setCompareFlags(message.compareFlags);
|
||||||
|
|
||||||
|
if (message.nextMode) {
|
||||||
|
importer.setMode(importer.getMode().next());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@@ -6,7 +6,6 @@ import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
|||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import storagecraft.tile.RedstoneMode;
|
|
||||||
import storagecraft.tile.TileMachine;
|
import storagecraft.tile.TileMachine;
|
||||||
|
|
||||||
public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<MessageRedstoneModeUpdate, IMessage> {
|
public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<MessageRedstoneModeUpdate, IMessage> {
|
||||||
@@ -46,13 +45,7 @@ public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
if (tile instanceof TileMachine) {
|
if (tile instanceof TileMachine) {
|
||||||
TileMachine machine = (TileMachine) tile;
|
TileMachine machine = (TileMachine) tile;
|
||||||
|
|
||||||
int id = machine.getRedstoneMode().id + 1;
|
machine.setRedstoneMode(machine.getRedstoneMode().next());
|
||||||
|
|
||||||
if (RedstoneMode.getById(id) == null) {
|
|
||||||
id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
machine.setRedstoneMode(RedstoneMode.getById(id));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
31
src/main/java/storagecraft/tile/ImporterMode.java
Normal file
31
src/main/java/storagecraft/tile/ImporterMode.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package storagecraft.tile;
|
||||||
|
|
||||||
|
public enum ImporterMode {
|
||||||
|
WHITELIST(0), BLACKLIST(1);
|
||||||
|
|
||||||
|
public final int id;
|
||||||
|
|
||||||
|
ImporterMode(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImporterMode next() {
|
||||||
|
ImporterMode next = getById(id + 1);
|
||||||
|
|
||||||
|
if (next == null) {
|
||||||
|
return getById(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ImporterMode getById(int id) {
|
||||||
|
for (ImporterMode mode : values()) {
|
||||||
|
if (mode.id == id) {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@@ -11,6 +11,16 @@ public enum RedstoneMode {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RedstoneMode next() {
|
||||||
|
RedstoneMode next = getById(id + 1);
|
||||||
|
|
||||||
|
if (next == null) {
|
||||||
|
return getById(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
public static RedstoneMode getById(int id) {
|
public static RedstoneMode getById(int id) {
|
||||||
for (RedstoneMode control : values()) {
|
for (RedstoneMode control : values()) {
|
||||||
if (control.id == id) {
|
if (control.id == id) {
|
||||||
|
@@ -13,7 +13,7 @@ import storagecraft.network.MessageTileUpdate;
|
|||||||
public class TileBase extends TileEntity {
|
public class TileBase extends TileEntity {
|
||||||
public static final int UPDATE_RANGE = 64;
|
public static final int UPDATE_RANGE = 64;
|
||||||
|
|
||||||
private ForgeDirection direction;
|
private ForgeDirection direction = ForgeDirection.UNKNOWN;
|
||||||
|
|
||||||
protected int ticks;
|
protected int ticks;
|
||||||
|
|
||||||
|
@@ -11,10 +11,12 @@ import storagecraft.util.InventoryUtils;
|
|||||||
|
|
||||||
public class TileImporter extends TileMachine implements IInventory {
|
public class TileImporter extends TileMachine implements IInventory {
|
||||||
public static final String NBT_COMPARE_FLAGS = "CompareFlags";
|
public static final String NBT_COMPARE_FLAGS = "CompareFlags";
|
||||||
|
public static final String NBT_MODE = "Mode";
|
||||||
|
|
||||||
private InventorySimple inventory = new InventorySimple("importer", 9);
|
private InventorySimple inventory = new InventorySimple("importer", 9);
|
||||||
|
|
||||||
private int compareFlags = InventoryUtils.COMPARE_NBT | InventoryUtils.COMPARE_DAMAGE;
|
private int compareFlags = 0;
|
||||||
|
private ImporterMode mode = ImporterMode.WHITELIST;
|
||||||
|
|
||||||
private int currentSlot = 0;
|
private int currentSlot = 0;
|
||||||
|
|
||||||
@@ -67,14 +69,22 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
slots++;
|
slots++;
|
||||||
|
|
||||||
if (InventoryUtils.compareStack(stack, slot, compareFlags)) {
|
if (InventoryUtils.compareStack(stack, slot, compareFlags)) {
|
||||||
|
if (mode == ImporterMode.WHITELIST) {
|
||||||
return true;
|
return true;
|
||||||
|
} else if (mode == ImporterMode.BLACKLIST) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == ImporterMode.WHITELIST) {
|
||||||
return slots == 0;
|
return slots == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public int getCompareFlags() {
|
public int getCompareFlags() {
|
||||||
return compareFlags;
|
return compareFlags;
|
||||||
}
|
}
|
||||||
@@ -83,6 +93,14 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
this.compareFlags = flags;
|
this.compareFlags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ImporterMode getMode() {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMode(ImporterMode mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSizeInventory() {
|
public int getSizeInventory() {
|
||||||
return inventory.getSizeInventory();
|
return inventory.getSizeInventory();
|
||||||
@@ -151,6 +169,10 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
compareFlags = nbt.getInteger(NBT_COMPARE_FLAGS);
|
compareFlags = nbt.getInteger(NBT_COMPARE_FLAGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nbt.hasKey(NBT_MODE)) {
|
||||||
|
mode = ImporterMode.getById(nbt.getInteger(NBT_MODE));
|
||||||
|
}
|
||||||
|
|
||||||
InventoryUtils.restoreInventory(this, nbt);
|
InventoryUtils.restoreInventory(this, nbt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,6 +181,7 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
|
|
||||||
nbt.setInteger(NBT_COMPARE_FLAGS, compareFlags);
|
nbt.setInteger(NBT_COMPARE_FLAGS, compareFlags);
|
||||||
|
nbt.setInteger(NBT_MODE, mode.id);
|
||||||
|
|
||||||
InventoryUtils.saveInventory(this, nbt);
|
InventoryUtils.saveInventory(this, nbt);
|
||||||
}
|
}
|
||||||
@@ -168,6 +191,7 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
super.fromBytes(buf);
|
super.fromBytes(buf);
|
||||||
|
|
||||||
compareFlags = buf.readInt();
|
compareFlags = buf.readInt();
|
||||||
|
mode = ImporterMode.getById(buf.readInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -175,5 +199,6 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
super.toBytes(buf);
|
super.toBytes(buf);
|
||||||
|
|
||||||
buf.writeInt(compareFlags);
|
buf.writeInt(compareFlags);
|
||||||
|
buf.writeInt(mode.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@ public abstract class TileMachine extends TileBase implements INetworkTile {
|
|||||||
|
|
||||||
protected boolean connected = false;
|
protected boolean connected = false;
|
||||||
|
|
||||||
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
private RedstoneMode redstoneMode = RedstoneMode.LOW;
|
||||||
|
|
||||||
private int xController;
|
private int xController;
|
||||||
private int yController;
|
private int yController;
|
||||||
|
@@ -22,6 +22,9 @@ misc.storagecraft:redstoneMode.0=Ignore
|
|||||||
misc.storagecraft:redstoneMode.1=High
|
misc.storagecraft:redstoneMode.1=High
|
||||||
misc.storagecraft:redstoneMode.2=Low
|
misc.storagecraft:redstoneMode.2=Low
|
||||||
|
|
||||||
|
misc.storagecraft:importer.mode.0=Whitelist
|
||||||
|
misc.storagecraft:importer.mode.1=Blacklist
|
||||||
|
|
||||||
block.storagecraft:controller.name=Controller
|
block.storagecraft:controller.name=Controller
|
||||||
block.storagecraft:cable.name=Cable
|
block.storagecraft:cable.name=Cable
|
||||||
block.storagecraft:grid.name=Grid
|
block.storagecraft:grid.name=Grid
|
||||||
|
@@ -22,6 +22,9 @@ misc.storagecraft:redstoneMode.0=Negeren
|
|||||||
misc.storagecraft:redstoneMode.1=Hoog
|
misc.storagecraft:redstoneMode.1=Hoog
|
||||||
misc.storagecraft:redstoneMode.2=Laag
|
misc.storagecraft:redstoneMode.2=Laag
|
||||||
|
|
||||||
|
misc.storagecraft:importer.mode.0=Whitelist
|
||||||
|
misc.storagecraft:importer.mode.1=Blacklist
|
||||||
|
|
||||||
block.storagecraft:controller.name=Controleur
|
block.storagecraft:controller.name=Controleur
|
||||||
block.storagecraft:cable.name=Kabel
|
block.storagecraft:cable.name=Kabel
|
||||||
block.storagecraft:grid.name=Rooster
|
block.storagecraft:grid.name=Rooster
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 278 B |
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Reference in New Issue
Block a user