Drag & drop from NEI to search support

https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/9094
This commit is contained in:
repo_alt committed 2021-12-14 12:50:59 +03:00
1 parent 9ce6963f09
commit dbf53773c3
3 files changed
+39 -19

No files matched your search

@@ -1375,4 +1375,15 @@ public class GuiWirelessCraftingTerminal extends GuiContainer implements ISortSo
return this.configSrc.getSetting(Settings.VIEW_MODE);
}
public boolean isOverSearchField(int x, int y)
{
return searchField.isMouseIn(x - guiLeft, y - guiTop);
}
public void setSearchString(String memoryText)
{
this.searchField.setText(memoryText);
this.repo.setSearchString(memoryText);
this.repo.updateView();
this.setScrollBar();
}
}
@@ -34,6 +34,7 @@ import net.p455w0rd.wirelesscraftingterminal.integration.IIntegrationModule;
import net.p455w0rd.wirelesscraftingterminal.integration.IntegrationHelper;
import net.p455w0rd.wirelesscraftingterminal.integration.abstraction.INEI;
import net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers.NEIAEShapedRecipeHandler;
import net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers.NEIGUIHandler;
public class NEI implements INEI, IContainerTooltipHandler, IIntegrationModule {
@Reflected
@@ -62,25 +63,8 @@ public class NEI implements INEI, IContainerTooltipHandler, IIntegrationModule {
API.registerGuiOverlay(net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal.class, "crafting", new WCTSlotPositioner());
API.registerGuiOverlayHandler(net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal.class, new WCTOverlayHandler(), "crafting");
API.registerRecipeHandler(new NEIAEShapedRecipeHandler());
API.registerRecipeHandler( new NEIAEShapelessRecipeHandler() );
/*
final Method registerGuiOverlay = this.apiClass.getDeclaredMethod("registerGuiOverlay", Class.class, String.class, IStackPositioner.class);
registerGuiOverlay.invoke(this.apiClass, net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal.class, "crafting",
new WCTSlotPositioner());
final Class overlayHandler = Class.forName("codechicken.nei.api.IOverlayHandler");
WCTOverlayHandler craftingOverlayHandler = new WCTOverlayHandler();
final Method registrar = this.apiClass.getDeclaredMethod("registerGuiOverlayHandler", Class.class, overlayHandler, String.class);
registrar.invoke(this.apiClass, net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal.class,
craftingOverlayHandler, "crafting");
*/
// final Class<NEICraftingHandler> defaultHandler =
// NEICraftingHandler.class;
// final Constructor defaultConstructor = defaultHandler.getConstructor(
// int.class, int.class );
API.registerRecipeHandler(new NEIAEShapelessRecipeHandler());
API.registerNEIGuiHandler(new NEIGUIHandler());
}
@@ -0,0 +1,25 @@
package net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
import codechicken.nei.api.INEIGuiAdapter;
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal;
public class NEIGUIHandler extends INEIGuiAdapter
{
@Override
public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button)
{
if (gui instanceof GuiWirelessCraftingTerminal && draggedStack != null && draggedStack.getItem() != null)
{
GuiWirelessCraftingTerminal gmm = (GuiWirelessCraftingTerminal)gui;
if (gmm.isOverSearchField(mousex, mousey))
{
gmm.setSearchString(draggedStack.getDisplayName());
return true;
}
}
return super.handleDragNDrop(gui, mousex, mousey, draggedStack, button);
}
}