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 GuiUpgradeManagement(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiDigitalMiner.png")));
ySize+=64;
}
@Override
@ -107,6 +109,21 @@ public class GuiDigitalMiner extends GuiMekanism
else {
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
@ -139,18 +156,37 @@ public class GuiDigitalMiner extends GuiMekanism
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 toUse = null;
if(stack != null && !Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
{
tileEntity.replaceStack = stack.copy();
tileEntity.replaceStack.stackSize = 1;
toUse = stack.copy();
}
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);

View file

@ -21,10 +21,12 @@ 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.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
public class GuiDigitalMinerConfig extends GuiMekanism
@ -41,6 +43,10 @@ public class GuiDigitalMinerConfig extends GuiMekanism
public float scroll;
private GuiTextField radiusField;
private GuiTextField minField;
private GuiTextField maxField;
public GuiDigitalMinerConfig(EntityPlayer player, TileEntityDigitalMiner tentity)
{
super(new ContainerNull(player, tentity));
@ -67,6 +73,10 @@ public class GuiDigitalMinerConfig extends GuiMekanism
{
super.updateScreen();
radiusField.updateCursorCounter();
minField.updateCursorCounter();
maxField.updateCursorCounter();
if(stackSwitch > 0)
{
stackSwitch--;
@ -231,6 +241,22 @@ public class GuiDigitalMinerConfig extends GuiMekanism
buttonList.clear();
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;
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
@ -261,6 +287,12 @@ 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("Min Y: " + tileEntity.minY, 11, 70, 0x00CD00);
fontRenderer.drawString("Max Y: " + tileEntity.maxY, 11, 82, 0x00CD00);
fontRenderer.drawString("Default:", 12, 126, 0x00CD00);
for(int i = 0; i < 4; i++)
@ -372,8 +404,28 @@ public class GuiDigitalMinerConfig extends GuiMekanism
else {
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()
{
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.SlotEnergy.SlotDischarge;
import mekanism.common.item.ItemMachineUpgrade;
import mekanism.common.tileentity.TileEntityDigitalMiner;
import mekanism.common.util.ChargeUtils;
import net.minecraft.entity.player.EntityPlayer;
@ -23,7 +24,7 @@ public class ContainerDigitalMiner extends Container
{
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)
{
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)
{
addSlotToContainer(new SlotElectricChest(inventory, slotX, 8 + slotX * 18, 206));
addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 206));
}
tileEntity.openChest();
@ -76,32 +77,35 @@ public class ContainerDigitalMiner extends Container
if(ChargeUtils.canBeDischarged(slotStack))
{
if(slotID != 54)
if(slotID != 27)
{
if(!mergeItemStack(slotStack, 54, 55, false))
if(!mergeItemStack(slotStack, 27, 28, false))
{
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;
}
}
}
else {
if(slotID < 54)
else if(slotStack.getItem() instanceof ItemMachineUpgrade)
{
if(slotID != 27 && slotID != 28)
{
if(!mergeItemStack(slotStack, 55, inventorySlots.size(), true))
if(!mergeItemStack(slotStack, 28, 29, false))
{
return null;
}
}
else if(!mergeItemStack(slotStack, 0, 54, false))
{
return null;
else {
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), true))
{
return null;
}
}
}

View file

@ -43,8 +43,8 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public int radius;
public int minY;
public int maxY;
public int minY = 0;
public int maxY = 60;
public boolean doEject = false;
public boolean doPull = false;
@ -195,6 +195,18 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
{
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);
@ -251,6 +263,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
super.getNetworkedData(data);
data.add(0);
data.add(radius);
data.add(minY);
data.add(maxY);
@ -260,6 +273,13 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(oresToMine.size());
data.add(controlType.ordinal());
data.add(filters.size());
for(MinerFilter filter : filters)
{
filter.write(data);
}
return data;
}
@ -268,6 +288,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
super.getNetworkedData(data);
data.add(1);
data.add(radius);
data.add(minY);
data.add(maxY);
@ -277,11 +298,6 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
data.add(oresToMine.size());
data.add(controlType.ordinal());
for(MinerFilter filter : filters)
{
filter.write(data);
}
return data;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB