fix up some GUI stuff and NPE fix
This commit is contained in:
@@ -29,15 +29,19 @@ public class GuiController extends GuiContainer {
|
|||||||
|
|
||||||
mc.getTextureManager().bindTexture(CONTROLLER_RESOURCE);
|
mc.getTextureManager().bindTexture(CONTROLLER_RESOURCE);
|
||||||
|
|
||||||
int x = (this.width - xSize) / 2;
|
drawTexturedModalRect((this.width - xSize) / 2, (this.height - ySize) / 2, 0, 0, xSize, ySize);
|
||||||
int y = (this.height - ySize) / 2;
|
}
|
||||||
|
|
||||||
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
|
@Override
|
||||||
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||||
|
int mx = mouseX - ((this.width - xSize) / 2);
|
||||||
|
int my = mouseY - ((this.height - ySize) / 2);
|
||||||
|
|
||||||
int barWidth = 16;
|
int barWidth = 16;
|
||||||
int barHeight = 58;
|
int barHeight = 58;
|
||||||
int barX = x + 17;
|
|
||||||
int barY = y + 25;
|
int barX = 17;
|
||||||
|
int barY = 25;
|
||||||
|
|
||||||
int energy = controller.getEnergyStored(null);
|
int energy = controller.getEnergyStored(null);
|
||||||
int maxEnergy = controller.getMaxEnergyStored(null);
|
int maxEnergy = controller.getMaxEnergyStored(null);
|
||||||
@@ -46,16 +50,16 @@ public class GuiController extends GuiContainer {
|
|||||||
|
|
||||||
drawTexturedModalRect(barX, barY + barHeight - newBarHeight, 178, 0, barWidth, newBarHeight);
|
drawTexturedModalRect(barX, barY + barHeight - newBarHeight, 178, 0, barWidth, newBarHeight);
|
||||||
|
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:controller"), x + 7, y + 7, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:controller"), 7, 7, 4210752);
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), x + 7, y + 96, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 96, 4210752);
|
||||||
fontRendererObj.drawString(String.format(StatCollector.translateToLocal("misc.storagecraft:energyUsage"), controller.getEnergyUsage()), x + 45, y + 24, 4210752);
|
fontRendererObj.drawString(String.format(StatCollector.translateToLocal("misc.storagecraft:energyUsage"), controller.getEnergyUsage()), 45, 24, 4210752);
|
||||||
|
|
||||||
if (mouseX >= barX && mouseX <= barX + barWidth && mouseY >= barY && mouseY <= barY + barHeight) {
|
if (mx >= barX && mx <= barX + barWidth && my >= barY && my <= barY + barHeight) {
|
||||||
List<String> lines = new ArrayList<String>();
|
List<String> lines = new ArrayList<String>();
|
||||||
|
|
||||||
lines.add(String.format(StatCollector.translateToLocal("misc.storagecraft:energyStored"), energy, maxEnergy));
|
lines.add(String.format(StatCollector.translateToLocal("misc.storagecraft:energyStored"), energy, maxEnergy));
|
||||||
|
|
||||||
drawHoveringText(lines, mouseX, mouseY, fontRendererObj);
|
drawHoveringText(lines, mx, my, fontRendererObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,12 +22,12 @@ public class GuiDrive extends GuiContainer {
|
|||||||
|
|
||||||
mc.getTextureManager().bindTexture(DRIVE_RESOURCE);
|
mc.getTextureManager().bindTexture(DRIVE_RESOURCE);
|
||||||
|
|
||||||
int x = (this.width - xSize) / 2;
|
drawTexturedModalRect((this.width - xSize) / 2, (this.height - ySize) / 2, 0, 0, xSize, ySize);
|
||||||
int y = (this.height - ySize) / 2;
|
}
|
||||||
|
|
||||||
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
|
@Override
|
||||||
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:drive"), x + 7, y + 7, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:drive"), 7, 7, 4210752);
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), x + 7, y + 96, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 96, 4210752);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -20,6 +20,8 @@ public class GuiGrid extends GuiContainer {
|
|||||||
private ContainerGrid container;
|
private ContainerGrid container;
|
||||||
private TileGrid grid;
|
private TileGrid grid;
|
||||||
|
|
||||||
|
private int hoveringSlot;
|
||||||
|
|
||||||
public GuiGrid(ContainerGrid container, TileGrid grid) {
|
public GuiGrid(ContainerGrid container, TileGrid grid) {
|
||||||
super(container);
|
super(container);
|
||||||
|
|
||||||
@@ -36,72 +38,57 @@ public class GuiGrid extends GuiContainer {
|
|||||||
|
|
||||||
mc.getTextureManager().bindTexture(GRID_RESOURCE);
|
mc.getTextureManager().bindTexture(GRID_RESOURCE);
|
||||||
|
|
||||||
int x = (this.width - xSize) / 2;
|
drawTexturedModalRect((this.width - xSize) / 2, (this.height - ySize) / 2, 0, 0, xSize, ySize);
|
||||||
int y = (this.height - ySize) / 2;
|
}
|
||||||
|
|
||||||
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
|
@Override
|
||||||
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||||
|
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:grid"), 7, 7, 4210752);
|
||||||
|
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 96, 4210752);
|
||||||
|
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:grid"), x + 7, y + 7, 4210752);
|
int mx = mouseX - ((this.width - xSize) / 2);
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), x + 7, y + 96, 4210752);
|
int my = mouseY - ((this.height - ySize) / 2);
|
||||||
|
|
||||||
int xx = getGridXStart();
|
int x = 8;
|
||||||
int yy = getGridYStart();
|
int y = 20;
|
||||||
|
|
||||||
ItemStack toolTip = null;
|
hoveringSlot = -1;
|
||||||
|
|
||||||
for (int i = 0; i < 9 * 4; ++i) {
|
for (int i = 0; i < 9 * 4; ++i) {
|
||||||
ItemStack stack = null;
|
|
||||||
|
|
||||||
if (grid.isConnected() && i < grid.getController().getItems().size()) {
|
if (grid.isConnected() && i < grid.getController().getItems().size()) {
|
||||||
stack = grid.getController().getItems().get(i).toItemStack();
|
ItemStack stack = grid.getController().getItems().get(i).toItemStack();
|
||||||
|
|
||||||
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), stack, xx, yy);
|
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), stack, x, y);
|
||||||
itemRender.renderItemOverlayIntoGUI(fontRendererObj, mc.getTextureManager(), stack, xx, yy);
|
itemRender.renderItemOverlayIntoGUI(fontRendererObj, mc.getTextureManager(), stack, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mouseX >= xx && mouseX <= xx + 16 && mouseY >= yy && mouseY <= yy + 16) || !grid.isConnected()) {
|
if ((mx >= x && mx <= x + 16 && my >= y && my <= y + 16) || !grid.isConnected()) {
|
||||||
|
hoveringSlot = i;
|
||||||
|
|
||||||
int color = grid.isConnected() ? -2130706433 : 0xFF5B5B5B;
|
int color = grid.isConnected() ? -2130706433 : 0xFF5B5B5B;
|
||||||
|
|
||||||
GL11.glDisable(GL11.GL_LIGHTING);
|
drawGradientRect(x, y, x + 16, y + 16, color, color);
|
||||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
|
||||||
GL11.glColorMask(true, true, true, false);
|
|
||||||
drawGradientRect(xx, yy, xx + 16, yy + 16, color, color);
|
|
||||||
GL11.glColorMask(true, true, true, true);
|
|
||||||
GL11.glEnable(GL11.GL_LIGHTING);
|
|
||||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
|
||||||
|
|
||||||
if (stack != null) {
|
|
||||||
toolTip = stack;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xx += 18;
|
x += 18;
|
||||||
|
|
||||||
if ((i + 1) % 9 == 0) {
|
if ((i + 1) % 9 == 0) {
|
||||||
xx = getGridXStart();
|
x = 8;
|
||||||
yy += 18;
|
y += 18;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolTip != null) {
|
if (isHoveringOverValidSlot()) {
|
||||||
renderToolTip(toolTip, mouseX, mouseY);
|
renderToolTip(grid.getController().getItems().get(hoveringSlot).toItemStack(), mx, my);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getGridXStart() {
|
private boolean isHoveringOverValidSlot() {
|
||||||
return ((this.width - xSize) / 2) + 8;
|
return grid.isConnected() && isHoveringOverSlot() && hoveringSlot < grid.getController().getItems().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getGridXEnd() {
|
private boolean isHoveringOverSlot() {
|
||||||
return getGridXStart() + (18 * 9);
|
return hoveringSlot >= 0;
|
||||||
}
|
|
||||||
|
|
||||||
private int getGridYStart() {
|
|
||||||
return ((this.height - ySize) / 2) + 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getGridYEnd() {
|
|
||||||
return getGridYStart() + (18 * 4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -111,16 +98,10 @@ public class GuiGrid extends GuiContainer {
|
|||||||
if (grid.isConnected()) {
|
if (grid.isConnected()) {
|
||||||
TileController controller = grid.getController();
|
TileController controller = grid.getController();
|
||||||
|
|
||||||
if (mouseX >= getGridXStart() && mouseX <= getGridXEnd() && mouseY >= getGridYStart() && mouseY <= getGridYEnd()) {
|
if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null) {
|
||||||
if (container.getPlayer().inventory.getItemStack() != null) {
|
SC.NETWORK.sendToServer(new MessagePushToStorage(controller.xCoord, controller.yCoord, controller.zCoord, -1, clickedButton == 1));
|
||||||
SC.NETWORK.sendToServer(new MessagePushToStorage(controller.xCoord, controller.yCoord, controller.zCoord, -1, clickedButton == 1));
|
} else if (isHoveringOverValidSlot() && container.getPlayer().inventory.getItemStack() == null) {
|
||||||
} else {
|
SC.NETWORK.sendToServer(new MessagePullFromStorage(controller.xCoord, controller.yCoord, controller.zCoord, hoveringSlot, clickedButton == 1, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)));
|
||||||
int slotX = ((mouseX - getGridXStart()) / 18) + 1;
|
|
||||||
int slotY = ((mouseY - getGridYStart()) / 18) + 1;
|
|
||||||
int slotId = (slotX * slotY) - 1;
|
|
||||||
|
|
||||||
SC.NETWORK.sendToServer(new MessagePullFromStorage(controller.xCoord, controller.yCoord, controller.zCoord, slotId, clickedButton == 1, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < container.inventorySlots.size(); ++i) {
|
for (int i = 0; i < container.inventorySlots.size(); ++i) {
|
||||||
Slot slot = (Slot) container.inventorySlots.get(i);
|
Slot slot = (Slot) container.inventorySlots.get(i);
|
||||||
|
@@ -27,10 +27,12 @@ public class MessageTileUpdate implements IMessage, IMessageHandler<MessageTileU
|
|||||||
y = buf.readInt();
|
y = buf.readInt();
|
||||||
z = buf.readInt();
|
z = buf.readInt();
|
||||||
|
|
||||||
tile = Minecraft.getMinecraft().theWorld.getTileEntity(x, y, z);
|
if (Minecraft.getMinecraft().theWorld != null) {
|
||||||
|
tile = Minecraft.getMinecraft().theWorld.getTileEntity(x, y, z);
|
||||||
|
|
||||||
if (tile instanceof INetworkTile) {
|
if (tile instanceof INetworkTile) {
|
||||||
((INetworkTile) tile).fromBytes(buf);
|
((INetworkTile) tile).fromBytes(buf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user