diff --git a/src/main/java/storagecraft/block/BlockImporter.java b/src/main/java/storagecraft/block/BlockImporter.java index 862368f5d..7b6bc1cc2 100644 --- a/src/main/java/storagecraft/block/BlockImporter.java +++ b/src/main/java/storagecraft/block/BlockImporter.java @@ -1,13 +1,19 @@ package storagecraft.block; import net.minecraft.block.ITileEntityProvider; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import storagecraft.SC; import storagecraft.tile.TileImporter; public class BlockImporter extends BlockSC implements ITileEntityProvider { + private IIcon frontIcon; + private IIcon sideIcon; + public BlockImporter() { super("importer"); } @@ -25,4 +31,30 @@ public class BlockImporter extends BlockSC implements ITileEntityProvider { return true; } + + @Override + public void registerBlockIcons(IIconRegister register) { + frontIcon = register.registerIcon("storagecraft:importer"); + sideIcon = register.registerIcon("storagecraft:generic"); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + TileImporter tile = (TileImporter) world.getTileEntity(x, y, z); + + if (side == tile.getDirection().ordinal()) { + return frontIcon; + } + + return sideIcon; + } + + @Override + public IIcon getIcon(int side, int meta) { + if (side == 3) { + return frontIcon; + } + + return sideIcon; + } } diff --git a/src/main/java/storagecraft/gui/GuiGrid.java b/src/main/java/storagecraft/gui/GuiGrid.java index c14ea855f..dfb0c6840 100644 --- a/src/main/java/storagecraft/gui/GuiGrid.java +++ b/src/main/java/storagecraft/gui/GuiGrid.java @@ -9,8 +9,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import storagecraft.SC; import storagecraft.inventory.ContainerGrid; -import storagecraft.network.MessagePullFromStorage; -import storagecraft.network.MessagePushToStorage; +import storagecraft.network.MessageStoragePull; +import storagecraft.network.MessageStoragePush; import storagecraft.tile.TileController; import storagecraft.tile.TileGrid; @@ -99,16 +99,16 @@ public class GuiGrid extends GuiContainer { TileController controller = grid.getController(); if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null) { - SC.NETWORK.sendToServer(new MessagePushToStorage(controller.xCoord, controller.yCoord, controller.zCoord, -1, clickedButton == 1)); + SC.NETWORK.sendToServer(new MessageStoragePush(controller.xCoord, controller.yCoord, controller.zCoord, -1, clickedButton == 1)); } else if (isHoveringOverValidSlot() && container.getPlayer().inventory.getItemStack() == null) { - SC.NETWORK.sendToServer(new MessagePullFromStorage(controller.xCoord, controller.yCoord, controller.zCoord, hoveringSlot, clickedButton == 1, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + SC.NETWORK.sendToServer(new MessageStoragePull(controller.xCoord, controller.yCoord, controller.zCoord, hoveringSlot, clickedButton == 1, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); } else { for (int i = 0; i < container.inventorySlots.size(); ++i) { Slot slot = (Slot) container.inventorySlots.get(i); if (func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX, mouseY)) { if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - SC.NETWORK.sendToServer(new MessagePushToStorage(controller.xCoord, controller.yCoord, controller.zCoord, slot.slotNumber, clickedButton == 1)); + SC.NETWORK.sendToServer(new MessageStoragePush(controller.xCoord, controller.yCoord, controller.zCoord, slot.slotNumber, clickedButton == 1)); } } } diff --git a/src/main/java/storagecraft/gui/GuiImporter.java b/src/main/java/storagecraft/gui/GuiImporter.java index a0b265084..add5e037d 100644 --- a/src/main/java/storagecraft/gui/GuiImporter.java +++ b/src/main/java/storagecraft/gui/GuiImporter.java @@ -7,7 +7,7 @@ import net.minecraft.util.StatCollector; import org.lwjgl.opengl.GL11; import storagecraft.SC; import storagecraft.inventory.ContainerImporter; -import storagecraft.network.MessageImporterSettingsUpdate; +import storagecraft.network.MessageImporterUpdate; import storagecraft.tile.TileImporter; import storagecraft.util.InventoryUtils; @@ -37,8 +37,8 @@ public class GuiImporter extends GuiContainer { int x = (this.width - xSize) / 2; int y = (this.height - ySize) / 2; - buttonList.add(compareNBT = new GuiButton(0, x + 7, y + 40, 100, 20, "...")); - buttonList.add(compareDamage = new GuiButton(1, x + 7, y + 64, 120, 20, "...")); + buttonList.add(compareNBT = new GuiButton(0, x + 7, y + 41, 100, 20, "...")); + buttonList.add(compareDamage = new GuiButton(1, x + 7, y + 63, 120, 20, "...")); } @Override @@ -82,6 +82,6 @@ public class GuiImporter extends GuiContainer { break; } - SC.NETWORK.sendToServer(new MessageImporterSettingsUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags)); + SC.NETWORK.sendToServer(new MessageImporterUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags)); } } diff --git a/src/main/java/storagecraft/network/MessageImporterSettingsUpdate.java b/src/main/java/storagecraft/network/MessageImporterUpdate.java similarity index 74% rename from src/main/java/storagecraft/network/MessageImporterSettingsUpdate.java rename to src/main/java/storagecraft/network/MessageImporterUpdate.java index 81795d87f..9c71ea3f3 100644 --- a/src/main/java/storagecraft/network/MessageImporterSettingsUpdate.java +++ b/src/main/java/storagecraft/network/MessageImporterUpdate.java @@ -8,16 +8,16 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import storagecraft.tile.TileImporter; -public class MessageImporterSettingsUpdate implements IMessage, IMessageHandler { +public class MessageImporterUpdate implements IMessage, IMessageHandler { private int x; private int y; private int z; private int compareFlags; - public MessageImporterSettingsUpdate() { + public MessageImporterUpdate() { } - public MessageImporterSettingsUpdate(int x, int y, int z, int compareFlags) { + public MessageImporterUpdate(int x, int y, int z, int compareFlags) { this.x = x; this.y = y; this.z = z; @@ -41,7 +41,7 @@ public class MessageImporterSettingsUpdate implements IMessage, IMessageHandler< } @Override - public IMessage onMessage(MessageImporterSettingsUpdate message, MessageContext context) { + public IMessage onMessage(MessageImporterUpdate message, MessageContext context) { EntityPlayerMP player = context.getServerHandler().playerEntity; TileEntity tile = player.worldObj.getTileEntity(message.x, message.y, message.z); diff --git a/src/main/java/storagecraft/network/MessagePullFromStorage.java b/src/main/java/storagecraft/network/MessageStoragePull.java similarity index 82% rename from src/main/java/storagecraft/network/MessagePullFromStorage.java rename to src/main/java/storagecraft/network/MessageStoragePull.java index 619c41b64..abb504606 100644 --- a/src/main/java/storagecraft/network/MessagePullFromStorage.java +++ b/src/main/java/storagecraft/network/MessageStoragePull.java @@ -10,7 +10,7 @@ import net.minecraft.tileentity.TileEntity; import storagecraft.storage.StorageItem; import storagecraft.tile.TileController; -public class MessagePullFromStorage implements IMessage, IMessageHandler { +public class MessageStoragePull implements IMessage, IMessageHandler { private int x; private int y; private int z; @@ -19,10 +19,10 @@ public class MessagePullFromStorage implements IMessage, IMessageHandler { +public class MessageStoragePush implements IMessage, IMessageHandler { private int x; private int y; private int z; private int slot; private boolean one; - public MessagePushToStorage() { + public MessageStoragePush() { } - public MessagePushToStorage(int x, int y, int z, int slot, boolean one) { + public MessageStoragePush(int x, int y, int z, int slot, boolean one) { this.x = x; this.y = y; this.z = z; @@ -46,7 +46,7 @@ public class MessagePushToStorage implements IMessage, IMessageHandler connectedInventory.getSizeInventory() - 1) { + break; + } + } if (slot != null && canImport(slot)) { if (getController().push(slot.copy())) { @@ -47,8 +50,6 @@ public class TileImporter extends TileMachine implements IInventory { } } } - } else { - connectedInventory = null; } } @@ -61,7 +62,7 @@ public class TileImporter extends TileMachine implements IInventory { if (slot != null) { slots++; - if (InventoryUtils.compareStack(slot, stack, compareFlags)) { + if (InventoryUtils.compareStack(stack, slot, compareFlags)) { return true; } } @@ -147,6 +148,10 @@ public class TileImporter extends TileMachine implements IInventory { public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + if (nbt.hasKey("CompareFlags")) { + compareFlags = nbt.getInteger("CompareFlags"); + } + InventoryUtils.restoreInventory(this, nbt); } @@ -154,6 +159,8 @@ public class TileImporter extends TileMachine implements IInventory { public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setInteger("CompareFlags", compareFlags); + InventoryUtils.saveInventory(this, nbt); } diff --git a/src/main/resources/assets/storagecraft/lang/nl_NL.lang b/src/main/resources/assets/storagecraft/lang/nl_NL.lang index e7a8fe180..35e8322d8 100644 --- a/src/main/resources/assets/storagecraft/lang/nl_NL.lang +++ b/src/main/resources/assets/storagecraft/lang/nl_NL.lang @@ -14,8 +14,8 @@ misc.storagecraft:storageCellStoredWithCapacity=Opgeslagen: %d / %d misc.storagecraft:compareNBT=NBT vergelijken misc.storagecraft:compareDamage=Damage vergelijken -misc.storagecraft.on=Aan -misc.storagecraft.off=Uit +misc.storagecraft:on=Aan +misc.storagecraft:off=Uit block.storagecraft:controller.name=Controleur block.storagecraft:cable.name=Kabel diff --git a/src/main/resources/assets/storagecraft/textures/blocks/importer.png b/src/main/resources/assets/storagecraft/textures/blocks/importer.png new file mode 100644 index 000000000..b8040d7f6 Binary files /dev/null and b/src/main/resources/assets/storagecraft/textures/blocks/importer.png differ