diff --git a/common/mekanism/client/gui/GuiDigitalMiner.java b/common/mekanism/client/gui/GuiDigitalMiner.java index f61e76080..27a470ab0 100644 --- a/common/mekanism/client/gui/GuiDigitalMiner.java +++ b/common/mekanism/client/gui/GuiDigitalMiner.java @@ -181,6 +181,11 @@ public class GuiDigitalMiner extends GuiMekanism { drawCreativeTabHoveringText("Replace block", xAxis, yAxis); } + + if(xAxis >= 131 && xAxis <= 145 && yAxis >= 47 && yAxis <= 61) + { + drawCreativeTabHoveringText("Reset", xAxis, yAxis); + } } @Override @@ -218,6 +223,14 @@ public class GuiDigitalMiner extends GuiMekanism drawTexturedModalRect(guiWidth + 147, guiHeight + 63, 176 + 4 + 14, 14, 14, 14); } + if(xAxis >= 131 && xAxis <= 145 && yAxis >= 47 && yAxis <= 61) + { + drawTexturedModalRect(guiWidth + 131, guiHeight + 47, 176 + 4 + 28, 0, 14, 14); + } + else { + drawTexturedModalRect(guiWidth + 131, guiHeight + 47, 176 + 4 + 28, 14, 14, 14); + } + if(xAxis >= 144 && xAxis <= 160 && yAxis >= 27 && yAxis <= 43) { GL11.glPushMatrix(); @@ -264,6 +277,16 @@ public class GuiDigitalMiner extends GuiMekanism PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); } + if(xAxis >= 131 && xAxis <= 145 && yAxis >= 47 && yAxis <= 61) + { + mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); + + ArrayList data = new ArrayList(); + data.add(5); + + PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); + } + if(xAxis >= 144 && xAxis <= 160 && yAxis >= 27 && yAxis <= 43) { boolean doNull = false; diff --git a/common/mekanism/client/gui/GuiDigitalMinerConfig.java b/common/mekanism/client/gui/GuiDigitalMinerConfig.java index d55e6a8ee..8dedd8581 100644 --- a/common/mekanism/client/gui/GuiDigitalMinerConfig.java +++ b/common/mekanism/client/gui/GuiDigitalMinerConfig.java @@ -14,17 +14,18 @@ import mekanism.common.inventory.container.ContainerNull; import mekanism.common.miner.MItemStackFilter; import mekanism.common.miner.MOreDictFilter; import mekanism.common.miner.MinerFilter; +import mekanism.common.network.PacketDigitalMinerGui; import mekanism.common.network.PacketDigitalMinerGui.MinerGuiPacket; import mekanism.common.network.PacketLogisticalSorterGui; import mekanism.common.network.PacketLogisticalSorterGui.SorterGuiPacket; import mekanism.common.network.PacketSimpleGui; -import mekanism.common.network.PacketTileEntity; import mekanism.common.tileentity.TileEntityDigitalMiner; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -142,6 +143,10 @@ public class GuiDigitalMinerConfig extends GuiMekanism { super.mouseClicked(mouseX, mouseY, button); + radiusField.mouseClicked(mouseX, mouseY, button); + minField.mouseClicked(mouseX, mouseY, button); + maxField.mouseClicked(mouseX, mouseY, button); + if(button == 0) { int xAxis = (mouseX - (width - xSize) / 2); @@ -166,44 +171,17 @@ public class GuiDigitalMinerConfig extends GuiMekanism if(filter instanceof MItemStackFilter) { mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); - PacketHandler.sendPacket(Transmission.SERVER, new PacketLogisticalSorterGui().setParams(SorterGuiPacket.SERVER_INDEX, Object3D.get(tileEntity), 1, getFilterIndex()+i)); + PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitalMinerGui().setParams(MinerGuiPacket.SERVER_INDEX, Object3D.get(tileEntity), 1, getFilterIndex()+i)); } else if(filter instanceof MOreDictFilter) { mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); - PacketHandler.sendPacket(Transmission.SERVER, new PacketLogisticalSorterGui().setParams(SorterGuiPacket.SERVER_INDEX, Object3D.get(tileEntity), 2, getFilterIndex()+i)); + PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitalMinerGui().setParams(MinerGuiPacket.SERVER_INDEX, Object3D.get(tileEntity), 2, getFilterIndex()+i)); } } } } - if(xAxis >= 13 && xAxis <= 29 && yAxis >= 137 && yAxis <= 153) - { - ArrayList data = new ArrayList(); - data.add(0); - - PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); - mc.sndManager.playSoundFX("mekanism:etc.Ding", 1.0F, 1.0F); - } - - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 110 && yAxis <= 124) - { - ArrayList data = new ArrayList(); - data.add(1); - - PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); - mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); - } - - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 84 && yAxis <= 98) - { - ArrayList data = new ArrayList(); - data.add(2); - - PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); - mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); - } - if(xAxis >= 5 && xAxis <= 16 && yAxis >= 5 && yAxis <= 16) { mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); @@ -250,19 +228,19 @@ public class GuiDigitalMinerConfig extends GuiMekanism buttonList.add(new GuiButton(0, guiWidth + 56, guiHeight + 136, 54, 20, "ItemStack")); buttonList.add(new GuiButton(1, guiWidth + 110, guiHeight + 136, 43, 20, "OreDict")); - String prevRad = !radiusField.getText().equals("") ? radiusField.getText() : "" + tileEntity.radius; - String prevMin = !minField.getText().equals("") ? minField.getText() : "" + tileEntity.minY; - String prevMax = !maxField.getText().equals("") ? maxField.getText() : "" + tileEntity.maxY; + String prevRad = radiusField != null ? radiusField.getText() : "" + tileEntity.radius; + String prevMin = minField != null ? minField.getText() : "" + tileEntity.minY; + String prevMax = maxField != null ? maxField.getText() : "" + tileEntity.maxY; - radiusField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 67, 20, 11); + radiusField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 67, 24, 11); radiusField.setMaxStringLength(3); radiusField.setText(prevRad); - minField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 79, 20, 11); + minField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 92, 20, 11); minField.setMaxStringLength(3); minField.setText(prevMin); - maxField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 91, 20, 11); + maxField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 117, 20, 11); maxField.setMaxStringLength(3); maxField.setText(prevMax); } @@ -273,7 +251,7 @@ public class GuiDigitalMinerConfig extends GuiMekanism super.actionPerformed(guibutton); if(guibutton.id == 0) - { + { PacketHandler.sendPacket(Transmission.SERVER, new PacketLogisticalSorterGui().setParams(SorterGuiPacket.SERVER, Object3D.get(tileEntity), 1)); } else if(guibutton.id == 1) @@ -295,13 +273,11 @@ public class GuiDigitalMinerConfig extends GuiMekanism fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 37, 0x00CD00); fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 46, 0x00CD00); - fontRenderer.drawString("Radius: " + tileEntity.radius, 11, 58, 0x00CD00); + fontRenderer.drawString("Radi: " + tileEntity.radius, 11, 58, 0x00CD00); - fontRenderer.drawString("Min Y: " + tileEntity.minY, 11, 70, 0x00CD00); + fontRenderer.drawString("MinY: " + tileEntity.minY, 11, 83, 0x00CD00); - fontRenderer.drawString("Max Y: " + tileEntity.maxY, 11, 82, 0x00CD00); - - fontRenderer.drawString("Default:", 12, 126, 0x00CD00); + fontRenderer.drawString("MaxY: " + tileEntity.maxY, 11, 108, 0x00CD00); for(int i = 0; i < 4; i++) { @@ -348,16 +324,6 @@ public class GuiDigitalMinerConfig extends GuiMekanism } } - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 110 && yAxis <= 124) - { - drawCreativeTabHoveringText("Auto-eject", xAxis, yAxis); - } - - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 84 && yAxis <= 98) - { - drawCreativeTabHoveringText("Round robin", xAxis, yAxis); - } - super.drawGuiContainerForegroundLayer(mouseX, mouseY); } @@ -366,7 +332,7 @@ public class GuiDigitalMinerConfig extends GuiMekanism { super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); - mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiLogisticalSorter.png")); + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMinerConfig.png")); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int guiWidth = (width - xSize) / 2; int guiHeight = (height - ySize) / 2; @@ -397,14 +363,6 @@ public class GuiDigitalMinerConfig extends GuiMekanism } } - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 110 && yAxis <= 124) - { - drawTexturedModalRect(guiWidth + 12, guiHeight + 110, 176, 0, 14, 14); - } - else { - drawTexturedModalRect(guiWidth + 12, guiHeight + 110, 176, 14, 14, 14); - } - if(xAxis >= 12 && xAxis <= 26 && yAxis >= 84 && yAxis <= 98) { drawTexturedModalRect(guiWidth + 12, guiHeight + 84, 176 + 14, 0, 14, 14); @@ -524,7 +482,7 @@ public class GuiDigitalMinerConfig extends GuiMekanism { ItemStack toAdd = stack.copy(); - if(!oreDictStacks.get(filter).iterStacks.contains(stack)) + if(!oreDictStacks.get(filter).iterStacks.contains(stack) && toAdd.getItem() instanceof ItemBlock) { oreDictStacks.get(filter).iterStacks.add(stack.copy()); } diff --git a/common/mekanism/client/gui/GuiMItemStackFilter.java b/common/mekanism/client/gui/GuiMItemStackFilter.java index 6e4858b3f..caf96cb51 100644 --- a/common/mekanism/client/gui/GuiMItemStackFilter.java +++ b/common/mekanism/client/gui/GuiMItemStackFilter.java @@ -15,6 +15,7 @@ import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import org.lwjgl.input.Keyboard; @@ -210,8 +211,11 @@ public class GuiMItemStackFilter extends GuiMekanism if(stack != null && !Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - filter.itemType = stack.copy(); - filter.itemType.stackSize = 1; + if(stack.getItem() instanceof ItemBlock) + { + filter.itemType = stack.copy(); + filter.itemType.stackSize = 1; + } } else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { diff --git a/common/mekanism/client/gui/GuiMOreDictFilter.java b/common/mekanism/client/gui/GuiMOreDictFilter.java index 7569c89c5..4f6dd407e 100644 --- a/common/mekanism/client/gui/GuiMOreDictFilter.java +++ b/common/mekanism/client/gui/GuiMOreDictFilter.java @@ -19,6 +19,7 @@ import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -315,7 +316,7 @@ public class GuiMOreDictFilter extends GuiMekanism { ItemStack toAdd = stack.copy(); - if(!iterStacks.contains(stack)) + if(!iterStacks.contains(stack) && toAdd.getItem() instanceof ItemBlock) { iterStacks.add(stack.copy()); } diff --git a/common/mekanism/common/inventory/container/ContainerFilter.java b/common/mekanism/common/inventory/container/ContainerFilter.java index 061184449..35e74c9c0 100644 --- a/common/mekanism/common/inventory/container/ContainerFilter.java +++ b/common/mekanism/common/inventory/container/ContainerFilter.java @@ -1,8 +1,5 @@ package mekanism.common.inventory.container; -import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge; -import mekanism.common.tileentity.TileEntityTeleporter; -import mekanism.common.util.ChargeUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/common/mekanism/common/miner/MOreDictFilter.java b/common/mekanism/common/miner/MOreDictFilter.java index f430ba563..c30cfd43f 100644 --- a/common/mekanism/common/miner/MOreDictFilter.java +++ b/common/mekanism/common/miner/MOreDictFilter.java @@ -3,6 +3,7 @@ package mekanism.common.miner; import java.util.ArrayList; import mekanism.common.util.MekanismUtils; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -15,6 +16,11 @@ public class MOreDictFilter extends MinerFilter @Override public boolean canFilter(ItemStack itemStack) { + if(itemStack == null || !(itemStack.getItem() instanceof ItemBlock)) + { + return false; + } + String oreKey = MekanismUtils.getOreDictName(itemStack); if(oreKey == null) diff --git a/common/mekanism/common/network/PacketDigitalMinerGui.java b/common/mekanism/common/network/PacketDigitalMinerGui.java index 77de26100..0cb8c81f4 100644 --- a/common/mekanism/common/network/PacketDigitalMinerGui.java +++ b/common/mekanism/common/network/PacketDigitalMinerGui.java @@ -4,7 +4,7 @@ import java.io.DataOutputStream; import java.util.ArrayList; import mekanism.api.Object3D; -import mekanism.client.gui.GuiDigitalMiner; +import mekanism.client.gui.GuiDigitalMinerConfig; import mekanism.client.gui.GuiMItemStackFilter; import mekanism.client.gui.GuiMOreDictFilter; import mekanism.common.PacketHandler; @@ -163,13 +163,14 @@ public class PacketDigitalMinerGui implements IMekanismPacket { if(type == 0) { - return new GuiDigitalMiner(player.inventory, (TileEntityDigitalMiner)world.getBlockTileEntity(x, y, z)); + return new GuiDigitalMinerConfig(player, (TileEntityDigitalMiner)world.getBlockTileEntity(x, y, z)); } else { if(packetType == MinerGuiPacket.CLIENT) { if(type == 1) { + System.out.println("hi"); return new GuiMItemStackFilter(player, (TileEntityDigitalMiner)world.getBlockTileEntity(x, y, z)); } else if(type == 2) diff --git a/common/mekanism/common/tileentity/TileEntityDigitalMiner.java b/common/mekanism/common/tileentity/TileEntityDigitalMiner.java index 5e9abdba3..f653b84cb 100644 --- a/common/mekanism/common/tileentity/TileEntityDigitalMiner.java +++ b/common/mekanism/common/tileentity/TileEntityDigitalMiner.java @@ -121,8 +121,9 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I public void reset() { - searcher.reset(); + searcher = new ThreadMinerSearch(this); running = false; + oresToMine.clear(); } @Override @@ -244,6 +245,10 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I { stop(); } + else if(type == 5) + { + reset(); + } return; } diff --git a/resources/assets/mekanism/gui/GuiDigitalMiner.png b/resources/assets/mekanism/gui/GuiDigitalMiner.png index 7efa1805d..09d3f121a 100644 Binary files a/resources/assets/mekanism/gui/GuiDigitalMiner.png and b/resources/assets/mekanism/gui/GuiDigitalMiner.png differ