mirror of
https://github.com/GTNewHorizons/Applied-Energistics-2-Unofficial.git
synced 2026-10-26 14:25:20 +00:00
Support NEI bookmark group drops in storage buses (#1487)
This commit is contained in:
1 parent
6efcb44074
commit
979c643077
2 files changed
+46
-2
No files matched your search
@@ -14,6 +14,7 @@ import java.io.IOException;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import org.lwjgl.input.Mouse;
|
||||
|
||||
@@ -233,6 +234,27 @@ public class GuiStorageBus extends GuiUpgradeable {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean handleBookmarkGroupDrop(int mouseX, int mouseY, Iterable<ItemStack> stacks) {
|
||||
final int x = mouseX - this.guiLeft + 1;
|
||||
final int y = mouseY - this.guiTop + 1;
|
||||
this.updateSlotVisibility();
|
||||
|
||||
int slotIndex = -1;
|
||||
for (VirtualMEPhantomSlot slot : this.configSlots) {
|
||||
if (slot.isHovered(x, y)) {
|
||||
slotIndex = slot.getSlotIndex();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (slotIndex < 0) return false;
|
||||
|
||||
for (ItemStack stack : stacks) {
|
||||
if (slotIndex >= this.configSlots.length || this.configSlots[slotIndex].isHidden()) break;
|
||||
this.configSlots[slotIndex++].handleMouseClicked(stack, false, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean acceptType(VirtualMEPhantomSlot slot, IAEStackType<?> type, int mouseButton) {
|
||||
return type == containerStorageBus.getStackType();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package appeng.integration.modules.NEIHelpers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -7,7 +10,11 @@ import net.minecraft.item.ItemStack;
|
||||
|
||||
import appeng.api.implementations.ICraftingPatternItem;
|
||||
import appeng.api.networking.crafting.ICraftingPatternDetails;
|
||||
import appeng.client.gui.implementations.GuiStorageBus;
|
||||
import codechicken.nei.ItemPanels;
|
||||
import codechicken.nei.NEIClientConfig;
|
||||
import codechicken.nei.bookmark.BookmarkItem;
|
||||
import codechicken.nei.bookmark.SortableGroup;
|
||||
import codechicken.nei.guihook.GuiContainerManager;
|
||||
import codechicken.nei.guihook.IContainerInputHandler;
|
||||
import codechicken.nei.recipe.GuiCraftingRecipe;
|
||||
@@ -15,6 +22,8 @@ import codechicken.nei.recipe.GuiUsageRecipe;
|
||||
|
||||
public class NEIInputHandler implements IContainerInputHandler {
|
||||
|
||||
private List<ItemStack> draggedBookmarkGroup;
|
||||
|
||||
@Override
|
||||
public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) {
|
||||
return false;
|
||||
@@ -60,7 +69,14 @@ public class NEIInputHandler implements IContainerInputHandler {
|
||||
public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) {}
|
||||
|
||||
@Override
|
||||
public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) {}
|
||||
public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) {
|
||||
if (button != 0) return;
|
||||
|
||||
if (gui instanceof GuiStorageBus storageBus && this.draggedBookmarkGroup != null) {
|
||||
storageBus.handleBookmarkGroupDrop(mousex, mousey, this.draggedBookmarkGroup);
|
||||
}
|
||||
this.draggedBookmarkGroup = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) {
|
||||
@@ -71,5 +87,11 @@ public class NEIInputHandler implements IContainerInputHandler {
|
||||
public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) {}
|
||||
|
||||
@Override
|
||||
public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) {}
|
||||
public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) {
|
||||
final SortableGroup group = ItemPanels.bookmarkPanel.sortableGroup;
|
||||
if (gui instanceof GuiStorageBus && group != null && this.draggedBookmarkGroup == null) {
|
||||
this.draggedBookmarkGroup = group.getBookmarkItems().stream().map(BookmarkItem::getItemStack)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user