GUI and networking fixes - I think the GUI is finished.

This commit is contained in:
Aidan C. Brady 2013-11-20 15:15:02 -05:00
parent 9673b9c7f8
commit 7b3edc142e
11 changed files with 138 additions and 43 deletions

View file

@ -17,6 +17,7 @@ import mekanism.common.miner.MinerFilter;
import mekanism.common.network.PacketDigitalMinerGui;
import mekanism.common.network.PacketDigitalMinerGui.MinerGuiPacket;
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;
@ -185,6 +186,24 @@ public class GuiDigitalMinerConfig extends GuiMekanism
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
PacketHandler.sendPacket(Transmission.SERVER, new PacketSimpleGui().setParams(Object3D.get(tileEntity), 2));
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 67 && yAxis <= 78)
{
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
setRadius();
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 92 && yAxis <= 103)
{
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
setMinY();
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 117 && yAxis <= 128)
{
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
setMaxY();
}
}
}
@ -226,19 +245,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 != null ? radiusField.getText() : "" + tileEntity.radius;
String prevMin = minField != null ? minField.getText() : "" + tileEntity.minY;
String prevMax = maxField != null ? maxField.getText() : "" + tileEntity.maxY;
String prevRad = radiusField != null ? radiusField.getText() : "";
String prevMin = minField != null ? minField.getText() : "";
String prevMax = maxField != null ? maxField.getText() : "";
radiusField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 67, 26, 11);
radiusField.setMaxStringLength(3);
radiusField.setMaxStringLength(2);
radiusField.setText(prevRad);
minField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 92, 20, 11);
minField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 92, 26, 11);
minField.setMaxStringLength(3);
minField.setText(prevMin);
maxField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 117, 20, 11);
maxField = new GuiTextField(fontRenderer, guiWidth + 12, guiHeight + 117, 26, 11);
maxField.setMaxStringLength(3);
maxField.setText(prevMax);
}
@ -264,7 +283,7 @@ public class GuiDigitalMinerConfig extends GuiMekanism
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
fontRenderer.drawString("Logistical Sorter", 43, 6, 0x404040);
fontRenderer.drawString("Digital Miner Config", 43, 6, 0x404040);
fontRenderer.drawString("Filters:", 11, 19, 0x00CD00);
fontRenderer.drawString("T: " + tileEntity.filters.size(), 11, 28, 0x00CD00);
@ -361,14 +380,6 @@ public class GuiDigitalMinerConfig extends GuiMekanism
}
}
if(xAxis >= 12 && xAxis <= 26 && yAxis >= 84 && yAxis <= 98)
{
drawTexturedModalRect(guiWidth + 12, guiHeight + 84, 176 + 14, 0, 14, 14);
}
else {
drawTexturedModalRect(guiWidth + 12, guiHeight + 84, 176 + 14, 14, 14, 14);
}
if(xAxis >= 5 && xAxis <= 16 && yAxis >= 5 && yAxis <= 16)
{
drawTexturedModalRect(guiWidth + 5, guiHeight + 5, 176, 0, 11, 11);
@ -377,6 +388,30 @@ public class GuiDigitalMinerConfig extends GuiMekanism
drawTexturedModalRect(guiWidth + 5, guiHeight + 5, 176, 11, 11, 11);
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 67 && yAxis <= 78)
{
drawTexturedModalRect(guiWidth + 39, guiHeight + 67, 176 + 11, 0, 11, 11);
}
else {
drawTexturedModalRect(guiWidth + 39, guiHeight + 67, 176 + 11, 11, 11, 11);
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 92 && yAxis <= 103)
{
drawTexturedModalRect(guiWidth + 39, guiHeight + 92, 176 + 11, 0, 11, 11);
}
else {
drawTexturedModalRect(guiWidth + 39, guiHeight + 92, 176 + 11, 11, 11, 11);
}
if(xAxis >= 39 && xAxis <= 50 && yAxis >= 117 && yAxis <= 128)
{
drawTexturedModalRect(guiWidth + 39, guiHeight + 117, 176 + 11, 0, 11, 11);
}
else {
drawTexturedModalRect(guiWidth + 39, guiHeight + 117, 176 + 11, 11, 11, 11);
}
radiusField.drawTextBox();
minField.drawTextBox();
maxField.drawTextBox();
@ -394,24 +429,15 @@ public class GuiDigitalMinerConfig extends GuiMekanism
{
if(radiusField.isFocused())
{
if(!radiusField.getText().isEmpty())
{
}
setRadius();
}
else if(minField.isFocused())
{
if(!minField.getText().isEmpty())
{
}
setMinY();
}
else if(maxField.isFocused())
{
if(!maxField.getText().isEmpty())
{
}
setMaxY();
}
}
@ -423,6 +449,54 @@ public class GuiDigitalMinerConfig extends GuiMekanism
}
}
private void setRadius()
{
if(!radiusField.getText().isEmpty())
{
int toUse = Math.max(0, Math.min(Integer.parseInt(radiusField.getText()), 99));
ArrayList data = new ArrayList();
data.add(6);
data.add(toUse);
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
radiusField.setText("");
}
}
private void setMinY()
{
if(!minField.getText().isEmpty())
{
int toUse = Math.max(0, Math.min(Integer.parseInt(minField.getText()), 255));
ArrayList data = new ArrayList();
data.add(7);
data.add(toUse);
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
minField.setText("");
}
}
private void setMaxY()
{
if(!maxField.getText().isEmpty())
{
int toUse = Math.max(0, Math.min(Integer.parseInt(maxField.getText()), 255));
ArrayList data = new ArrayList();
data.add(8);
data.add(toUse);
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
maxField.setText("");
}
}
public ArrayList getItemStackFilters()
{
ArrayList list = new ArrayList();

View file

@ -37,7 +37,7 @@ public class GuiMItemStackFilter extends GuiMekanism
public GuiMItemStackFilter(EntityPlayer player, TileEntityDigitalMiner tentity, int index)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
origFilter = (MItemStackFilter)tileEntity.filters.get(index);
@ -46,7 +46,7 @@ public class GuiMItemStackFilter extends GuiMekanism
public GuiMItemStackFilter(EntityPlayer player, TileEntityDigitalMiner tentity)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
isNew = true;

View file

@ -52,7 +52,7 @@ public class GuiMOreDictFilter extends GuiMekanism
public GuiMOreDictFilter(EntityPlayer player, TileEntityDigitalMiner tentity, int index)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
origFilter = (MOreDictFilter)tileEntity.filters.get(index);
@ -63,7 +63,7 @@ public class GuiMOreDictFilter extends GuiMekanism
public GuiMOreDictFilter(EntityPlayer player, TileEntityDigitalMiner tentity)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
isNew = true;

View file

@ -43,7 +43,7 @@ public class GuiTItemStackFilter extends GuiMekanism
public GuiTItemStackFilter(EntityPlayer player, TileEntityLogisticalSorter tentity, int index)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
origFilter = (TItemStackFilter)tileEntity.filters.get(index);
@ -52,7 +52,7 @@ public class GuiTItemStackFilter extends GuiMekanism
public GuiTItemStackFilter(EntityPlayer player, TileEntityLogisticalSorter tentity)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
isNew = true;

View file

@ -56,7 +56,7 @@ public class GuiTOreDictFilter extends GuiMekanism
public GuiTOreDictFilter(EntityPlayer player, TileEntityLogisticalSorter tentity, int index)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
origFilter = (TOreDictFilter)tileEntity.filters.get(index);
@ -67,7 +67,7 @@ public class GuiTOreDictFilter extends GuiMekanism
public GuiTOreDictFilter(EntityPlayer player, TileEntityLogisticalSorter tentity)
{
super(new ContainerFilter(player.inventory));
super(new ContainerFilter(player.inventory, tentity));
tileEntity = tentity;
isNew = true;

View file

@ -301,9 +301,9 @@ public class CommonProxy
case 26:
return new ContainerNull(player, (TileEntityContainerBlock)tileEntity);
case 27:
return new ContainerFilter(player.inventory);
return new ContainerFilter(player.inventory, (TileEntityContainerBlock)tileEntity);
case 28:
return new ContainerFilter(player.inventory);
return new ContainerFilter(player.inventory, (TileEntityContainerBlock)tileEntity);
}
return null;

View file

@ -1,5 +1,6 @@
package mekanism.common.inventory.container;
import mekanism.common.tileentity.TileEntityContainerBlock;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
@ -8,8 +9,12 @@ import net.minecraft.item.ItemStack;
public class ContainerFilter extends Container
{
public ContainerFilter(InventoryPlayer inventory)
private TileEntityContainerBlock tileEntity;
public ContainerFilter(InventoryPlayer inventory, TileEntityContainerBlock tile)
{
tileEntity = tile;
int slotX;
for(slotX = 0; slotX < 3; ++slotX)
@ -24,12 +29,24 @@ public class ContainerFilter extends Container
{
addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142));
}
tileEntity.openChest();
tileEntity.playersUsing.add(inventory.player);
}
@Override
public void onContainerClosed(EntityPlayer entityplayer)
{
super.onContainerClosed(entityplayer);
tileEntity.closeChest();
tileEntity.playersUsing.remove(entityplayer);
}
@Override
public boolean canInteractWith(EntityPlayer entityplayer)
{
return true;
return tileEntity.isUseableByPlayer(entityplayer);
}
@Override

View file

@ -121,17 +121,18 @@ public class PacketDigitalMinerGui implements IMekanismPacket
{
Container container = null;
playerMP.closeScreen();
if(guiType == 0)
{
container = new ContainerNull(playerMP, (TileEntityContainerBlock)obj.getTileEntity(world));
}
else if(guiType == 1 || guiType == 2)
{
container = new ContainerFilter(playerMP.inventory);
container = new ContainerFilter(playerMP.inventory, (TileEntityContainerBlock)obj.getTileEntity(world));
}
playerMP.incrementWindowID();
playerMP.closeContainer();
int window = playerMP.currentWindowId;
if(t == MinerGuiPacket.SERVER)

View file

@ -121,17 +121,18 @@ public class PacketLogisticalSorterGui implements IMekanismPacket
{
Container container = null;
playerMP.closeScreen();
if(guiType == 0)
{
container = new ContainerNull(playerMP, (TileEntityContainerBlock)obj.getTileEntity(world));
}
else if(guiType == 1 || guiType == 2)
{
container = new ContainerFilter(playerMP.inventory);
container = new ContainerFilter(playerMP.inventory, (TileEntityContainerBlock)obj.getTileEntity(world));
}
playerMP.incrementWindowID();
playerMP.closeContainer();
int window = playerMP.currentWindowId;
if(t == SorterGuiPacket.SERVER)

View file

@ -138,6 +138,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
doPull = nbtTags.getBoolean("doPull");
isActive = nbtTags.getBoolean("isActive");
running = nbtTags.getBoolean("running");
searcher.state = State.values()[nbtTags.getInteger("state")];
controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")];
if(nbtTags.hasKey("replaceStack"))
@ -178,6 +179,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
nbtTags.setBoolean("doPull", doPull);
nbtTags.setBoolean("isActive", isActive);
nbtTags.setBoolean("running", running);
nbtTags.setInteger("state", searcher.state.ordinal());
nbtTags.setInteger("controlType", controlType.ordinal());
if(replaceStack != null)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB