public GuiSideInventory( GuiMultiModule parent, Container container, int slotCount, int columns, boolean rightSide, boolean connected) { super(parent, container, rightSide, false); this.connected = connected; this.columns = columns; this.slotCount = slotCount; this.xSize = columns * slot.w + border.w * 2; this.ySize = calcCappedYSize(slot.h * 10); if (connected) { if (right) { border.cornerTopLeft = overlapTopLeft; border.borderLeft = overlap; border.cornerBottomLeft = overlapBottomLeft; } else { border.cornerTopRight = overlapTopRight; border.borderRight = overlap; border.cornerBottomRight = overlapBottomRight; } } yOffset = 0; updateSlots(); }
@Override public void updatePosition(int parentX, int parentY, int parentSizeX, int parentSizeY) { // at most as big as the parent this.ySize = calcCappedYSize(parentSizeY - 10); // slider needed? if (getDisplayedRows() < getTotalRows()) { slider.enable(); this.xSize = columns * slot.w + slider.width + 2 * border.w; } else { slider.disable(); this.xSize = columns * slot.w + border.w * 2; } // update position super.updatePosition(parentX, parentY, parentSizeX, parentSizeY); // connected needs to move to the side if (connected) { if (yOffset == 0) { if (right) { border.cornerTopLeft = overlapTop; } else { border.cornerTopRight = overlapTop; } } xOffset = (border.w - 1) * (right ? -1 : 1); guiLeft += xOffset; } else { xOffset = 0; } // move it a bit this.guiTop += yOffset; border.setPosition(guiLeft, guiTop); border.setSize(xSize, ySize); int y = guiTop + border.h; int h = ySize - border.h * 2; if (shouldDrawName()) { y += textBackground.h; h -= textBackground.h; } slider.setPosition(guiLeft + columns * slot.w + border.w, y); slider.setSize(h); slider.setSliderParameters(0, getTotalRows() - getDisplayedRows(), 1); updateSlots(); }