diff --git a/dependencies.gradle b/dependencies.gradle index eb64250862c..2dd3fb8d4b9 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,16 +2,15 @@ dependencies { compile('com.github.GTNewHorizons:CodeChickenLib:1.1.5.6:dev') - compile('com.github.GTNewHorizons:NotEnoughItems:2.3.20-GTNH:dev') + compile('com.github.GTNewHorizons:NotEnoughItems:2.3.21-GTNH:dev') compile('curse.maven:cofh-core-69162:2388751') - compile('com.github.GTNewHorizons:BuildCraft:7.1.28:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.2.8:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.18:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:Jabba:1.2.21:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.5.15:api') {transitive = false} compileOnly('com.github.GTNewHorizons:OpenComputers:1.7.5.32-GTNH:api') {transitive = false} - compileOnly('com.github.GTNewHorizons:waila:1.5.21:api') {transitive = false} + compileOnly('com.github.GTNewHorizons:waila:1.5.21:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:Railcraft:9.13.10:api') {transitive = false} compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api') diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java index ce14c247d94..fc2472dfd84 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java @@ -36,6 +36,7 @@ import appeng.core.sync.packets.PacketSwitchGuis; import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.WirelessTerminalGuiObject; +import appeng.integration.modules.NEI; import appeng.parts.reporting.PartCraftingTerminal; import appeng.parts.reporting.PartPatternTerminal; import appeng.parts.reporting.PartPatternTerminalEx; @@ -527,6 +528,7 @@ protected void actionPerformed(final GuiButton btn) { } if (btn == this.cancel) { + this.addMissingItemsToBookMark(); switchToOriginalGUI(); } @@ -578,4 +580,24 @@ public void handleMouseInput() { public boolean hideItemPanelSlot(int x, int y, int w, int h) { return cpuTable.hideItemPanelSlot(x - guiLeft, y - guiTop, w, h); } + + protected void addMissingItemsToBookMark() { + if (!this.missing.isEmpty() && isShiftKeyDown()) { + for (IAEItemStack iaeItemStack : this.missing) { + NEI.instance.addItemToBookMark(iaeItemStack.getItemStack()); + } + } + } + + public IItemList getStorage() { + return this.storage; + } + + public IItemList getPending() { + return this.pending; + } + + public IItemList getMissing() { + return this.missing; + } } diff --git a/src/main/java/appeng/integration/modules/NEI.java b/src/main/java/appeng/integration/modules/NEI.java index ee063841b3f..bf53ff06ab2 100644 --- a/src/main/java/appeng/integration/modules/NEI.java +++ b/src/main/java/appeng/integration/modules/NEI.java @@ -30,6 +30,8 @@ import appeng.integration.IntegrationHelper; import appeng.integration.abstraction.INEI; import appeng.integration.modules.NEIHelpers.*; +import codechicken.nei.ItemsGrid; +import codechicken.nei.LayoutManager; import codechicken.nei.api.INEIGuiHandler; import codechicken.nei.api.IStackPositioner; import codechicken.nei.guihook.GuiContainerManager; @@ -60,9 +62,9 @@ public class NEI implements INEI, IContainerTooltipHandler, IIntegrationModule, @Reflected public NEI() throws ClassNotFoundException { IntegrationHelper.testClassExistence(this, codechicken.nei.api.API.class); - IntegrationHelper.testClassExistence(this, codechicken.nei.api.IStackPositioner.class); - IntegrationHelper.testClassExistence(this, codechicken.nei.guihook.GuiContainerManager.class); - IntegrationHelper.testClassExistence(this, codechicken.nei.guihook.IContainerTooltipHandler.class); + IntegrationHelper.testClassExistence(this, IStackPositioner.class); + IntegrationHelper.testClassExistence(this, GuiContainerManager.class); + IntegrationHelper.testClassExistence(this, IContainerTooltipHandler.class); IntegrationHelper.testClassExistence(this, codechicken.nei.recipe.ICraftingHandler.class); IntegrationHelper.testClassExistence(this, codechicken.nei.recipe.IUsageHandler.class); @@ -205,4 +207,10 @@ public boolean shouldShowTooltip(GuiContainer gui) { if (gui instanceof GuiCraftingCPU) return ((GuiCraftingCPU) gui).getHoveredStack() == null; return true; } + + public void addItemToBookMark(ItemStack itemStack) { + ItemsGrid grid = LayoutManager.bookmarkPanel.getGrid(); + grid.setPage(grid.getNumPages() - 1); + LayoutManager.bookmarkPanel.addItem(itemStack); + } } diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 05cf12e6649..d4bc1af20c2 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -1306,14 +1306,15 @@ public static StackType poweredInsert( return input; } + @SuppressWarnings("unchecked") public static void postChanges( final IStorageGrid gs, final ItemStack removed, final ItemStack added, final BaseActionSource src) { final IItemList itemChanges = AEApi.instance().storage().createItemList(); final IItemList fluidChanges = AEApi.instance().storage().createFluidList(); - + IMEInventory myItems = null; + IMEInventory myFluids = null; if (removed != null) { - final IMEInventory myItems = - AEApi.instance().registries().cell().getCellInventory(removed, null, StorageChannel.ITEMS); + myItems = AEApi.instance().registries().cell().getCellInventory(removed, null, StorageChannel.ITEMS); if (myItems != null) { for (final IAEItemStack is : myItems.getAvailableItems(itemChanges)) { @@ -1321,8 +1322,7 @@ public static void postChanges( } } - final IMEInventory myFluids = - AEApi.instance().registries().cell().getCellInventory(removed, null, StorageChannel.FLUIDS); + myFluids = AEApi.instance().registries().cell().getCellInventory(removed, null, StorageChannel.FLUIDS); if (myFluids != null) { for (final IAEFluidStack is : myFluids.getAvailableItems(fluidChanges)) { @@ -1332,22 +1332,23 @@ public static void postChanges( } if (added != null) { - final IMEInventory myItems = - AEApi.instance().registries().cell().getCellInventory(added, null, StorageChannel.ITEMS); + myItems = AEApi.instance().registries().cell().getCellInventory(added, null, StorageChannel.ITEMS); if (myItems != null) { myItems.getAvailableItems(itemChanges); } - final IMEInventory myFluids = - AEApi.instance().registries().cell().getCellInventory(added, null, StorageChannel.FLUIDS); + myFluids = AEApi.instance().registries().cell().getCellInventory(added, null, StorageChannel.FLUIDS); if (myFluids != null) { myFluids.getAvailableItems(fluidChanges); } } - - gs.postAlterationOfStoredItems(StorageChannel.ITEMS, itemChanges, src); + if (myItems == null) { + gs.postAlterationOfStoredItems(StorageChannel.FLUIDS, fluidChanges, src); + } else { + gs.postAlterationOfStoredItems(StorageChannel.ITEMS, itemChanges, src); + } } public static > void postListChanges(