GUI work, kinda functions, but not really

This commit is contained in:
Aidan C. Brady 2013-11-19 18:56:53 -05:00
parent 7a74fb86ba
commit d02d0ceadf
5 changed files with 132 additions and 24 deletions

View file

@ -35,6 +35,8 @@ public class GuiDigitalMiner extends GuiMekanism
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMiner.png"))); guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMiner.png")));
guiElements.add(new GuiUpgradeManagement(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMiner.png"))); guiElements.add(new GuiUpgradeManagement(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMiner.png")));
ySize+=64;
} }
@Override @Override
@ -107,6 +109,21 @@ public class GuiDigitalMiner extends GuiMekanism
else { else {
drawTexturedModalRect(guiWidth + 147, guiHeight + 63, 176 + 4 + 14, 14, 14, 14); drawTexturedModalRect(guiWidth + 147, guiHeight + 63, 176 + 4 + 14, 14, 14, 14);
} }
if(xAxis >= 144 && xAxis <= 160 && yAxis >= 27 && yAxis <= 43)
{
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_DEPTH_TEST);
int x = guiWidth + 144;
int y = guiHeight + 27;
drawGradientRect(x, y, x + 16, y + 16, -2130706433, -2130706433);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glPopMatrix();
}
} }
@Override @Override
@ -139,18 +156,37 @@ public class GuiDigitalMiner extends GuiMekanism
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data)); PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
} }
if(xAxis >= 12 && xAxis <= 28 && yAxis >= 19 && yAxis <= 35) if(xAxis >= 144 && xAxis <= 160 && yAxis >= 27 && yAxis <= 43)
{ {
boolean doNull = false;
ItemStack stack = mc.thePlayer.inventory.getItemStack(); ItemStack stack = mc.thePlayer.inventory.getItemStack();
ItemStack toUse = null;
if(stack != null && !Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) if(stack != null && !Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
{ {
tileEntity.replaceStack = stack.copy(); toUse = stack.copy();
tileEntity.replaceStack.stackSize = 1;
} }
else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
{ {
tileEntity.replaceStack = null; doNull = true;
}
if(stack != null || doNull)
{
ArrayList data = new ArrayList();
data.add(2);
if(stack != null)
{
data.add(true);
data.add(stack.itemID);
data.add(stack.getItemDamage());
}
else {
data.add(false);
}
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
} }
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);

View file

@ -21,10 +21,12 @@ import mekanism.common.tileentity.TileEntityDigitalMiner;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
public class GuiDigitalMinerConfig extends GuiMekanism public class GuiDigitalMinerConfig extends GuiMekanism
@ -41,6 +43,10 @@ public class GuiDigitalMinerConfig extends GuiMekanism
public float scroll; public float scroll;
private GuiTextField radiusField;
private GuiTextField minField;
private GuiTextField maxField;
public GuiDigitalMinerConfig(EntityPlayer player, TileEntityDigitalMiner tentity) public GuiDigitalMinerConfig(EntityPlayer player, TileEntityDigitalMiner tentity)
{ {
super(new ContainerNull(player, tentity)); super(new ContainerNull(player, tentity));
@ -67,6 +73,10 @@ public class GuiDigitalMinerConfig extends GuiMekanism
{ {
super.updateScreen(); super.updateScreen();
radiusField.updateCursorCounter();
minField.updateCursorCounter();
maxField.updateCursorCounter();
if(stackSwitch > 0) if(stackSwitch > 0)
{ {
stackSwitch--; stackSwitch--;
@ -231,6 +241,22 @@ public class GuiDigitalMinerConfig extends GuiMekanism
buttonList.clear(); buttonList.clear();
buttonList.add(new GuiButton(0, guiWidth + 56, guiHeight + 136, 54, 20, "ItemStack")); buttonList.add(new GuiButton(0, guiWidth + 56, guiHeight + 136, 54, 20, "ItemStack"));
buttonList.add(new GuiButton(1, guiWidth + 110, guiHeight + 136, 43, 20, "OreDict")); 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;
radiusField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 67, 20, 11);
radiusField.setMaxStringLength(3);
radiusField.setText(prevRad);
minField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 79, 20, 11);
minField.setMaxStringLength(3);
minField.setText(prevMin);
maxField = new GuiTextField(fontRenderer, guiWidth + 11, guiHeight + 91, 20, 11);
maxField.setMaxStringLength(3);
maxField.setText(prevMax);
} }
@Override @Override
@ -261,6 +287,12 @@ public class GuiDigitalMinerConfig extends GuiMekanism
fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 37, 0x00CD00); fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 37, 0x00CD00);
fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 46, 0x00CD00); fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 46, 0x00CD00);
fontRenderer.drawString("Radius: " + tileEntity.radius, 11, 58, 0x00CD00);
fontRenderer.drawString("Min Y: " + tileEntity.minY, 11, 70, 0x00CD00);
fontRenderer.drawString("Max Y: " + tileEntity.maxY, 11, 82, 0x00CD00);
fontRenderer.drawString("Default:", 12, 126, 0x00CD00); fontRenderer.drawString("Default:", 12, 126, 0x00CD00);
for(int i = 0; i < 4; i++) for(int i = 0; i < 4; i++)
@ -372,8 +404,28 @@ public class GuiDigitalMinerConfig extends GuiMekanism
else { else {
drawTexturedModalRect(guiWidth + 12, guiHeight + 84, 176 + 14, 14, 14, 14); drawTexturedModalRect(guiWidth + 12, guiHeight + 84, 176 + 14, 14, 14, 14);
} }
radiusField.drawTextBox();
minField.drawTextBox();
maxField.drawTextBox();
} }
@Override
public void keyTyped(char c, int i)
{
if((!radiusField.isFocused() && !minField.isFocused() && !maxField.isFocused()) || i == Keyboard.KEY_ESCAPE)
{
super.keyTyped(c, i);
}
if(Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT)
{
radiusField.textboxKeyTyped(c, i);
minField.textboxKeyTyped(c, i);
maxField.textboxKeyTyped(c, i);
}
}
public ArrayList getItemStackFilters() public ArrayList getItemStackFilters()
{ {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();

View file

@ -2,6 +2,7 @@ package mekanism.common.inventory.container;
import mekanism.common.inventory.slot.SlotElectricChest; import mekanism.common.inventory.slot.SlotElectricChest;
import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge; import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge;
import mekanism.common.item.ItemMachineUpgrade;
import mekanism.common.tileentity.TileEntityDigitalMiner; import mekanism.common.tileentity.TileEntityDigitalMiner;
import mekanism.common.util.ChargeUtils; import mekanism.common.util.ChargeUtils;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -23,7 +24,7 @@ public class ContainerDigitalMiner extends Container
{ {
for(int slotX = 0; slotX < 9; slotX++) for(int slotX = 0; slotX < 9; slotX++)
{ {
addSlotToContainer(new Slot(tentity, slotX + slotY * 9, 8 + slotX * 18, 26 + slotY * 18)); addSlotToContainer(new Slot(tentity, slotX + slotY * 9, 8 + slotX * 18, 80 + slotY * 18));
} }
} }
@ -35,13 +36,13 @@ public class ContainerDigitalMiner extends Container
{ {
for(int slotY = 0; slotY < 9; ++slotY) for(int slotY = 0; slotY < 9; ++slotY)
{ {
addSlotToContainer(new SlotElectricChest(inventory, slotY + slotX * 9 + 9, 8 + slotY * 18, 148 + slotX * 18)); addSlotToContainer(new Slot(inventory, slotY + slotX * 9 + 9, 8 + slotY * 18, 148 + slotX * 18));
} }
} }
for(slotX = 0; slotX < 9; ++slotX) for(slotX = 0; slotX < 9; ++slotX)
{ {
addSlotToContainer(new SlotElectricChest(inventory, slotX, 8 + slotX * 18, 206)); addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 206));
} }
tileEntity.openChest(); tileEntity.openChest();
@ -76,32 +77,35 @@ public class ContainerDigitalMiner extends Container
if(ChargeUtils.canBeDischarged(slotStack)) if(ChargeUtils.canBeDischarged(slotStack))
{ {
if(slotID != 54) if(slotID != 27)
{ {
if(!mergeItemStack(slotStack, 54, 55, false)) if(!mergeItemStack(slotStack, 27, 28, false))
{ {
return null; return null;
} }
} }
else if(slotID == 54) else if(slotID == 27)
{ {
if(!mergeItemStack(slotStack, 55, inventorySlots.size(), true)) if(!mergeItemStack(slotStack, 29, inventorySlots.size(), true))
{ {
return null; return null;
} }
} }
} }
else { else if(slotStack.getItem() instanceof ItemMachineUpgrade)
if(slotID < 54) {
if(slotID != 27 && slotID != 28)
{ {
if(!mergeItemStack(slotStack, 55, inventorySlots.size(), true)) if(!mergeItemStack(slotStack, 28, 29, false))
{ {
return null; return null;
} }
} }
else if(!mergeItemStack(slotStack, 0, 54, false)) else {
{ if(!mergeItemStack(slotStack, 29, inventorySlots.size(), true))
return null; {
return null;
}
} }
} }

View file

@ -43,8 +43,8 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public int radius; public int radius;
public int minY; public int minY = 0;
public int maxY; public int maxY = 60;
public boolean doEject = false; public boolean doEject = false;
public boolean doPull = false; public boolean doPull = false;
@ -195,6 +195,18 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
{ {
doPull = !doPull; doPull = !doPull;
} }
else if(type == 2)
{
boolean doNull = dataStream.readBoolean();
if(!doNull)
{
replaceStack = new ItemStack(dataStream.readInt(), 1, dataStream.readInt());
}
else {
replaceStack = null;
}
}
} }
super.handlePacketData(dataStream); super.handlePacketData(dataStream);
@ -251,6 +263,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
super.getNetworkedData(data); super.getNetworkedData(data);
data.add(0); data.add(0);
data.add(radius); data.add(radius);
data.add(minY); data.add(minY);
data.add(maxY); data.add(maxY);
@ -260,6 +273,13 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(oresToMine.size()); data.add(oresToMine.size());
data.add(controlType.ordinal()); data.add(controlType.ordinal());
data.add(filters.size());
for(MinerFilter filter : filters)
{
filter.write(data);
}
return data; return data;
} }
@ -268,6 +288,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
super.getNetworkedData(data); super.getNetworkedData(data);
data.add(1); data.add(1);
data.add(radius); data.add(radius);
data.add(minY); data.add(minY);
data.add(maxY); data.add(maxY);
@ -277,11 +298,6 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(oresToMine.size()); data.add(oresToMine.size());
data.add(controlType.ordinal()); data.add(controlType.ordinal());
for(MinerFilter filter : filters)
{
filter.write(data);
}
return data; return data;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB