diff --git a/src/main/java/codechicken/nei/AbstractSubpanel.java b/src/main/java/codechicken/nei/AbstractSubpanel.java index 20452286..abc90957 100644 --- a/src/main/java/codechicken/nei/AbstractSubpanel.java +++ b/src/main/java/codechicken/nei/AbstractSubpanel.java @@ -5,7 +5,9 @@ import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; +import codechicken.lib.vec.Rectangle4i; import codechicken.nei.ItemsGrid.ItemsGridSlot; +import codechicken.nei.api.GuiInfo; import codechicken.nei.api.ShortcutInputHandler; import codechicken.nei.drawable.DrawableBuilder; import codechicken.nei.drawable.DrawableResource; @@ -19,6 +21,7 @@ public abstract class AbstractSubpanel> 24 & 255) / 255.0F; float red = (this.splittingLineColor >> 16 & 255) / 255.0F; float green = (this.splittingLineColor >> 8 & 255) / 255.0F; float blue = (this.splittingLineColor & 255) / 255.0F; - int width = this.grid.columns * ItemsGrid.SLOT_SIZE; + int width = this.grid.columns * ItemsGrid.SLOT_SIZE - this.linePaddingStart; int repeat = width / 6; - int shiftX = this.x + (this.w - width) / 2; + int shiftX = this.x + this.linePaddingStart + (this.w - width) / 2; GL11.glColor4f(red, green, blue, alpha); for (int i = 0; i < repeat; i++) { - DASH.draw(shiftX + i * 6, y); + DASH.draw(shiftX + i * 6, this.y); } GL11.glColor4f(1, 1, 1, 1); } diff --git a/src/main/java/codechicken/nei/ItemCraftablesPanel.java b/src/main/java/codechicken/nei/ItemCraftablesPanel.java index 51e8a51b..562401d9 100644 --- a/src/main/java/codechicken/nei/ItemCraftablesPanel.java +++ b/src/main/java/codechicken/nei/ItemCraftablesPanel.java @@ -108,19 +108,22 @@ public class ItemCraftablesPanel if (this.gridMask == null) { int maxSlotIndex = this.rows * this.columns; final AtomicInteger slotIndex = new AtomicInteger(0); + final AtomicInteger itemIndex = new AtomicInteger(0); final List gridMask = new ArrayList<>(); this.realItems.clear(); if (!ItemCraftablesPanel.this.availableRecipes.isEmpty()) { ItemCraftablesPanel.this.availableRecipes.entrySet().stream() .sorted(Map.Entry.comparingByKey(ItemSorter.instance)).forEach(entry -> { - this.realItems.add(entry.getKey()); - gridMask.add( - new CraftablesGridSlot( - slotIndex.get(), - slotIndex.get(), - entry.getKey(), - entry.getValue())); + if (!isInvalidSlot(slotIndex.get())) { + this.realItems.add(entry.getKey()); + gridMask.add( + new CraftablesGridSlot( + slotIndex.get(), + itemIndex.getAndIncrement(), + entry.getKey(), + entry.getValue())); + } slotIndex.incrementAndGet(); }); @@ -128,6 +131,8 @@ public class ItemCraftablesPanel } else { this.gridMask = Collections.emptyList(); } + + ItemCraftablesPanel.this.updateLinePadding(); } return this.gridMask; diff --git a/src/main/java/codechicken/nei/ItemHistoryPanel.java b/src/main/java/codechicken/nei/ItemHistoryPanel.java index ca4d872e..f7fd7625 100644 --- a/src/main/java/codechicken/nei/ItemHistoryPanel.java +++ b/src/main/java/codechicken/nei/ItemHistoryPanel.java @@ -40,9 +40,15 @@ public class ItemHistoryPanel extends AbstractSubpanel(); - for (int slotIndex = 0; slotIndex < Math.min(size(), this.rows * this.columns); slotIndex++) { - this.gridMask.add(new HistoryGridSlot(slotIndex, slotIndex, getItem(slotIndex))); + int itemIndex = 0; + for (int slotIndex = 0; slotIndex < this.rows * this.columns && itemIndex < size(); slotIndex++) { + if (!isInvalidSlot(slotIndex)) { + this.gridMask.add(new HistoryGridSlot(slotIndex, itemIndex, getItem(itemIndex))); + itemIndex++; + } } + + ItemHistoryPanel.this.updateLinePadding(); } return this.gridMask;