Allow NEI to mark Aspect

This commit is contained in:
DianeXD committed 2022-05-23 17:34:17 +08:00
1 parent 776fa14756
commit fa030a2def
6 files changed
+77 -7

No files matched your search

@@ -1,6 +1,8 @@
package thaumicenergistics.client.gui;
import java.util.List;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -204,12 +206,19 @@ public class GuiEssentiaCellWorkbench
// Call super
super.mouseClicked( mouseX, mouseY, mouseButton );
ItemStack temp = null;
if( draggedStack != null )
{
temp = draggedStack.copy();
draggedStack = null;
}
for( SimpleAspectWidget partitionWidget : this.partitionWidgets )
{
if( partitionWidget.isMouseOverWidget( mouseX, mouseY ) )
{
// Get the aspect of the currently held item
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem( this.player.inventory.getItemStack() );
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem(temp == null ? this.player.inventory.getItemStack() : temp);
// Get the aspect of the widget
Aspect widgetAspect = partitionWidget.getAspect();
@@ -2,6 +2,8 @@ package thaumicenergistics.client.gui;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import appeng.api.config.RedstoneMode;
import cpw.mods.fml.relauncher.Side;
@@ -284,6 +286,13 @@ public class GuiEssentiaIO
// Call super
super.mouseClicked( mouseX, mouseY, mouseButton );
ItemStack temp = null;
if( draggedStack != null )
{
temp = draggedStack.copy();
draggedStack = null;
}
// Loop over all widgets
for( WidgetAspectSlot aspectSlot : this.aspectSlotList )
{
@@ -291,7 +300,7 @@ public class GuiEssentiaIO
if( aspectSlot.isMouseOverWidget( mouseX, mouseY ) )
{
// Get the aspect of the currently held item
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem( this.player.inventory.getItemStack() );
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem(temp == null ? this.player.inventory.getItemStack() : temp);
// Is there an aspect?
if( itemAspect != null )
@@ -2,6 +2,8 @@ package thaumicenergistics.client.gui;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -232,12 +234,19 @@ public class GuiEssentiaStorageBus
// Call super
super.mouseClicked( mouseX, mouseY, mouseButton );
ItemStack temp = null;
if( draggedStack != null )
{
temp = draggedStack.copy();
draggedStack = null;
}
for( WidgetAspectSlot aspectSlot : this.aspectWidgetList )
{
if( aspectSlot.isMouseOverWidget( mouseX, mouseY ) )
{
// Get the aspect of the currently held item
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem( this.player.inventory.getItemStack() );
Aspect itemAspect = EssentiaItemContainerHelper.INSTANCE.getFilterAspectFromItem(temp == null ? this.player.inventory.getItemStack() : temp);
// Is there an aspect?
if( itemAspect != null )
@@ -12,6 +12,7 @@ import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import thaumicenergistics.api.gui.IWidgetHost;
import thaumicenergistics.client.gui.ThEGuiHelper;
import thaumicenergistics.client.gui.buttons.ThEGuiButtonBase;
@@ -39,6 +40,7 @@ public abstract class ThEBaseGui
* Lines to draw when drawTooltip is called.
*/
protected final List<String> tooltip = new ArrayList<String>();
public ItemStack draggedStack;
public ThEBaseGui( final Container container )
{
@@ -9,6 +9,7 @@ import java.util.List;
import appeng.util.Platform;
import codechicken.nei.PositionedStack;
import codechicken.nei.api.API;
import codechicken.nei.api.INEIGuiAdapter;
import codechicken.nei.api.IOverlayHandler;
import codechicken.nei.api.IStackPositioner;
import codechicken.nei.recipe.IRecipeHandler;
@@ -19,6 +20,7 @@ import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import thaumicenergistics.client.gui.GuiArcaneCraftingTerminal;
import thaumicenergistics.client.gui.abstraction.ThEBaseGui;
import thaumicenergistics.common.container.ContainerPartArcaneCraftingTerminal;
import thaumicenergistics.common.items.ItemEnum;
import thaumicenergistics.common.network.NetworkHandler;
@@ -237,6 +239,20 @@ public class ModuleNEI
}
static class NEIGuiHandler extends INEIGuiAdapter
{
@Override
public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button)
{
if (gui instanceof ThEBaseGui && draggedStack !=null && draggedStack.getItem() !=null )
{
((ThEBaseGui)gui).draggedStack = draggedStack;
}
return super.handleDragNDrop(gui, mousex, mousey, draggedStack, button);
}
}
/**
* Starting X offset for slots in NEI
*/
@@ -266,8 +282,9 @@ public class ModuleNEI
// Register the handlers
API.registerGuiOverlayHandler( thaumicenergistics.client.gui.GuiArcaneCraftingTerminal.class, craftingOverlayHandler, "crafting" );
API.registerGuiOverlayHandler( thaumicenergistics.client.gui.GuiArcaneCraftingTerminal.class, arcaneOverlayHandler, "arcaneshapedrecipes" );
API.registerGuiOverlayHandler( thaumicenergistics.client.gui.GuiArcaneCraftingTerminal.class, arcaneOverlayHandler,
"arcaneshapelessrecipes" );
API.registerGuiOverlayHandler( thaumicenergistics.client.gui.GuiArcaneCraftingTerminal.class, arcaneOverlayHandler, "arcaneshapelessrecipes" );
API.registerNEIGuiHandler(new NEIGuiHandler());
// Hide the crafting aspect item
API.hideItem( ItemEnum.CRAFTING_ASPECT.getStack() );
@@ -1,5 +1,6 @@
package thaumicenergistics.common.integration.tc;
import com.djgiannuzz.thaumcraftneiplugin.items.ItemAspect;
import org.apache.commons.lang3.tuple.ImmutablePair;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -57,7 +58,12 @@ public final class EssentiaItemContainerHelper
/**
* Wispy Essence.
*/
WispEssence;
WispEssence,
/**
* thaumcraftneiplugin.items.ItemAspect
*/
ItemAspect;
}
/**
@@ -555,6 +561,9 @@ public final class EssentiaItemContainerHelper
case WispEssence:
return this.getAspectFromAnyContainerItem( itemStack );
case ItemAspect:
return this.getAspectFromItemAspect(itemStack);
case Invalid:
break;
@@ -608,7 +617,11 @@ public final class EssentiaItemContainerHelper
{
return AspectItemType.JarLabel;
}
//ItemAspect?
if( item instanceof ItemAspect )
{
return AspectItemType.ItemAspect;
}
}
}
@@ -929,4 +942,15 @@ public final class EssentiaItemContainerHelper
rLabel.setAspects( label, aspects );
}
/**
* Get the aspect of the ItemAspect.
*
* @param itemStack
* @return
*/
public Aspect getAspectFromItemAspect(ItemStack itemStack){
return ItemAspect.getAspects(itemStack).getAspects()[0];
}
}