Added in warning for missing stacks. Onto visual Digital Miner range rendering!

This commit is contained in:
Aidan C. Brady 2014-07-20 21:20:45 -04:00
parent 2b817e28cd
commit c1b317dcde
4 changed files with 89 additions and 8 deletions

View file

@ -4,10 +4,12 @@ import java.util.ArrayList;
import java.util.List;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.api.ListUtils;
import mekanism.client.gui.GuiEnergyInfo.IInfoHandler;
import mekanism.client.gui.GuiSlot.SlotOverlay;
import mekanism.client.gui.GuiSlot.SlotType;
import mekanism.client.render.MekanismRenderer;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
import mekanism.common.inventory.container.ContainerDigitalMiner;
@ -18,15 +20,13 @@ import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.tile.TileEntityDigitalMiner;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -173,14 +173,25 @@ public class GuiDigitalMiner extends GuiMekanism
fontRendererObj.drawString(MekanismUtils.localize("gui.digitalMiner.toMine") + ":", 9, 59, 0x00CD00);
fontRendererObj.drawString("" + tileEntity.clientToMine, 9, 68, 0x00CD00);
/**if(tileEntity.replaceStack != null) TODO display missing replace stack
if(tileEntity.missingStack != null)
{
GL11.glPushMatrix();
GL11.glColor4f(1, 1, 1, 1);
GL11.glEnable(GL11.GL_LIGHTING);
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), tileEntity.replaceStack, 144, 27);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
mc.getTextureManager().bindTexture(MekanismRenderer.getBlocksTexture());
itemRender.renderIcon(144, 27, MekanismRenderer.getColorIcon(EnumColor.DARK_RED), 16, 16);
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), tileEntity.missingStack, 144, 27);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}*/
}
else {
mc.getTextureManager().bindTexture(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiSlot.png"));
drawTexturedModalRect(143, 26, SlotOverlay.CHECK.textureX, SlotOverlay.CHECK.textureY, 18, 18);
}
if(xAxis >= 164 && xAxis <= 168 && yAxis >= 25 && yAxis <= 77)
{
@ -199,7 +210,13 @@ public class GuiDigitalMiner extends GuiMekanism
if(xAxis >= 144 && xAxis <= 160 && yAxis >= 27 && yAxis <= 43)
{
drawCreativeTabHoveringText(MekanismUtils.localize("gui.digitalMiner.replaceBlock"), xAxis, yAxis);
if(tileEntity.missingStack != null)
{
drawCreativeTabHoveringText(MekanismUtils.localize("gui.digitalMiner.missingBlock"), xAxis, yAxis);
}
else {
drawCreativeTabHoveringText(MekanismUtils.localize("gui.well"), xAxis, yAxis);
}
}
if(xAxis >= 131 && xAxis <= 145 && yAxis >= 47 && yAxis <= 61)

View file

@ -79,6 +79,8 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public boolean doEject = false;
public boolean doPull = false;
public ItemStack missingStack = null;
public int delay;
@ -213,6 +215,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
worldObj.playAuxSFXAtEntity(null, 2001, coord.xCoord, coord.yCoord, coord.zCoord, Block.getIdFromBlock(block) + (meta << 12));
missingStack = null;
delay = getDelay();
}
@ -312,13 +315,17 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
return true;
}
else {
if(!replaceMap.get(index).requireStack)
MinerFilter filter = replaceMap.get(index);
if(filter.replaceStack == null || !filter.requireStack)
{
worldObj.setBlockToAir(obj.xCoord, obj.yCoord, obj.zCoord);
return true;
}
missingStack = filter.replaceStack;
return false;
}
}
@ -514,6 +521,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
running = false;
oresToMine.clear();
replaceMap.clear();
missingStack = null;
MekanismUtils.saveChunk(this);
}
@ -691,6 +699,14 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
clientToMine = dataStream.readInt();
controlType = RedstoneControl.values()[dataStream.readInt()];
inverse = dataStream.readBoolean();
if(dataStream.readBoolean())
{
missingStack = new ItemStack(Item.getItemById(dataStream.readInt()), 1, dataStream.readInt());
}
else {
missingStack = null;
}
filters.clear();
@ -716,6 +732,14 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
clientToMine = dataStream.readInt();
controlType = RedstoneControl.values()[dataStream.readInt()];
inverse = dataStream.readBoolean();
if(dataStream.readBoolean())
{
missingStack = new ItemStack(Item.getItemById(dataStream.readInt()), 1, dataStream.readInt());
}
else {
missingStack = null;
}
}
else if(type == 2)
{
@ -733,6 +757,14 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
isActive = dataStream.readBoolean();
running = dataStream.readBoolean();
clientToMine = dataStream.readInt();
if(dataStream.readBoolean())
{
missingStack = new ItemStack(Item.getItemById(dataStream.readInt()), 1, dataStream.readInt());
}
else {
missingStack = null;
}
}
}
@ -764,6 +796,16 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(controlType.ordinal());
data.add(inverse);
if(missingStack != null)
{
data.add(true);
data.add(MekanismUtils.getID(missingStack));
data.add(missingStack.getItemDamage());
}
else {
data.add(false);
}
data.add(filters.size());
@ -791,6 +833,16 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
else {
data.add(oresToMine.cardinality());
}
if(missingStack != null)
{
data.add(true);
data.add(MekanismUtils.getID(missingStack));
data.add(missingStack.getItemDamage());
}
else {
data.add(false);
}
return data;
}
@ -822,6 +874,16 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(controlType.ordinal());
data.add(inverse);
if(missingStack != null)
{
data.add(true);
data.add(MekanismUtils.getID(missingStack));
data.add(missingStack.getItemDamage());
}
else {
data.add(false);
}
return data;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -347,6 +347,7 @@ gui.modID=Mod ID
gui.key=Key
gui.id=ID
gui.finished=Finished
gui.well=All is well!
gui.chemicalInfuser.short=C. Infuser
gui.chemicalDissolutionChamber.short=C. Dissolution Chamber
@ -441,6 +442,7 @@ gui.digitalMiner.running=Running
gui.digitalMiner.inverse=Inverse mode
gui.digitalMiner.requireReplace=Require replace
gui.digitalMiner.fuzzyMode=Fuzzy mode
gui.digitalMiner.missingBlock=Missing block
//Recipe names
recipe.mekanismShaped=Shaped