Skip to content

Commit

Permalink
cherry pick fix tooltip problem
Browse files Browse the repository at this point in the history
  • Loading branch information
vfyjxf authored and Dream-Master committed Feb 7, 2022
1 parent ed66abe commit 15a6344
Show file tree
Hide file tree
Showing 20 changed files with 317 additions and 252 deletions.
3 changes: 2 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ dependencies {
compile("com.github.GTNewHorizons:CodeChickenLib:1.1.5.3:dev")
compile("com.github.GTNewHorizons:CodeChickenCore:1.1.3:dev")
compile("com.github.GTNewHorizons:NotEnoughItems:2.2.5-GTNH:dev")
compile("com.github.GTNewHorizons:Baubles:1.0.1.14:dev")
compile("com.github.GTNewHorizons:WirelessCraftingTerminal:1.8.8.3:dev")

compileOnly("com.github.GTNewHorizons:Avaritiaddons:1.5.3-GTNH:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:BuildCraftCompat:7.1.9:dev") { transitive = false }
Expand All @@ -11,7 +13,6 @@ dependencies {
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.40.31:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:GTplusplus:1.7.27:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:ThaumicEnergistics:1.3.16-GTNH:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:WirelessCraftingTerminal:1.8.8.3:dev") { transitive = false }
compileOnly("com.gregoriust.gregtech:gregtech_1.7.10:6.14.23:dev") { transitive = false }
compileOnly("curse.maven:thaumcraft-nei-plugin-225095:2241913") { transitive = false }
compileOnly("curse.maven:thermal-expansion-69163:2388759") { transitive = false }
Expand Down
4 changes: 0 additions & 4 deletions src/main/java/com/github/vfyjxf/nee/NEINeeConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@ public void loadConfig() {

registerGuiHandler();

if (NEEConfig.drawHighlight) {
GuiContainerManager.addDrawHandler(NEEContainerDrawHandler.instance);
}

Set<String> defaultIdentifiers = new HashSet<>(
Arrays.asList("crafting", "crafting2x2", "brewing", "smelting", "fuel", null)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ public byte[] transform(String name, String transformedName, byte[] basicClass)
for (MethodNode methodNode : classNode.methods) {
if (TARGET_METHOD_MAPPING.matches(methodNode)) {
NotEnoughEnergistics.logger.info("Transforming : " + internalName + methodNode.name + methodNode.desc);
AbstractInsnNode aLoad = methodNode.instructions.getLast().getPrevious();
while (aLoad.getOpcode() != ALOAD) {
aLoad = aLoad.getPrevious();
AbstractInsnNode aLoad = methodNode.instructions.getFirst();
while (aLoad.getOpcode() != ILOAD) {
aLoad = aLoad.getNext();
}
InsnList insnList = new InsnList();
insnList.add(new VarInsnNode(ILOAD, 1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;

Expand Down Expand Up @@ -37,12 +36,12 @@ public boolean onActivated(World world, int x, int y, int z, EntityPlayer player
return false;
}

if (!world.isRemote) {
TilePatternInterface tile = this.getTileEntity(world,x, y, z);
if (tile != null) {
TilePatternInterface tile = this.getTileEntity(world, x, y, z);
if (tile != null) {
if (!world.isRemote) {
NEEGuiHandler.openGui(player, NEEGuiHandler.PATTERN_INTERFACE_ID, tile, ForgeDirection.UNKNOWN);
return true;
}
return true;
}

return false;
Expand Down
85 changes: 71 additions & 14 deletions src/main/java/com/github/vfyjxf/nee/client/GuiEventHandler.java
Original file line number Diff line number Diff line change
@@ -1,32 +1,43 @@
package com.github.vfyjxf.nee.client;

import appeng.client.gui.AEBaseGui;
import appeng.client.gui.implementations.GuiCraftConfirm;
import appeng.client.gui.implementations.GuiPatternTerm;
import appeng.container.implementations.ContainerCraftConfirm;
import appeng.container.implementations.ContainerPatternTerm;
import appeng.container.slot.SlotFake;
import codechicken.nei.VisiblityData;
import codechicken.nei.api.INEIGuiHandler;
import codechicken.nei.api.TaggedInventoryArea;
import com.github.vfyjxf.nee.client.gui.widgets.GuiImgButtonEnableCombination;
import com.github.vfyjxf.nee.config.ItemCombination;
import com.github.vfyjxf.nee.config.NEEConfig;
import com.github.vfyjxf.nee.client.gui.widgets.GuiImgButtonEnableCombination;
import com.github.vfyjxf.nee.container.ContainerCraftingConfirm;
import com.github.vfyjxf.nee.network.NEENetworkHandler;
import com.github.vfyjxf.nee.network.packet.PacketSlotStackChange;
import com.github.vfyjxf.nee.utils.GuiUtils;
import com.github.vfyjxf.nee.utils.ModIDs;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ObfuscationReflectionHelper;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.event.GuiOpenEvent;
import net.minecraftforge.client.event.GuiScreenEvent;
import org.lwjgl.input.Mouse;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static com.github.vfyjxf.nee.config.NEEConfig.draggedStackDefaultSize;
import static com.github.vfyjxf.nee.config.NEEConfig.useStackSizeFromNEI;
import static com.github.vfyjxf.nee.nei.NEECraftingHelper.tracker;

public class GuiEventHandler implements INEIGuiHandler {

Expand All @@ -35,6 +46,63 @@ public class GuiEventHandler implements INEIGuiHandler {
private GuiImgButtonEnableCombination buttonCombination;
private boolean hasDoubleBtn = true;

@SubscribeEvent
public void onGuiOpen(GuiOpenEvent event) {
GuiScreen old = Minecraft.getMinecraft().currentScreen;
GuiScreen next = event.gui;
if (old != null) {
if (GuiUtils.isGuiCraftConfirm(old) && isContainerCraftConfirm(((GuiContainer) old).inventorySlots)) {
if (tracker != null) {
if (GuiUtils.isGuiCraftingTerm(next)) {
if (tracker.hasNext()) {
tracker.requestNextIngredient();
} else {
tracker = null;
}
} else {
if (tracker != null) {
tracker = null;
}
}
}
}
}

}

@SubscribeEvent
public void onCraftConfirmActionPerformed(GuiScreenEvent.ActionPerformedEvent.Post event) {
if (tracker != null) {
if (event.gui instanceof GuiCraftConfirm) {
if (getCancelButton((GuiCraftConfirm) event.gui) == event.button) {
tracker = null;
}
}

if (GuiUtils.isWirelessGuiCraftConfirm(event.gui)) {
assert event.gui instanceof net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm;
if (getCancelButton((net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm) event.gui) == event.button) {
tracker = null;
}
}
}
}

private GuiButton getCancelButton(GuiCraftConfirm gui) {
return ObfuscationReflectionHelper.getPrivateValue(GuiCraftConfirm.class, gui, "cancel");
}

@Optional.Method(modid = ModIDs.WCT)
private GuiButton getCancelButton(net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm gui) {
return ObfuscationReflectionHelper.getPrivateValue(net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm.class, gui, "cancel");
}

private boolean isContainerCraftConfirm(Container container) {
return (container instanceof ContainerCraftConfirm || GuiUtils.isContainerWirelessCraftingConfirm(container)) &&
!((container instanceof ContainerCraftingConfirm) || (GuiUtils.isWCTContainerCraftingConfirm(container)));
}


@SuppressWarnings("unchecked")
@SubscribeEvent
public void onInitGui(GuiScreenEvent.InitGuiEvent.Post event) {
Expand Down Expand Up @@ -86,17 +154,6 @@ public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) {
}
}

@SuppressWarnings("unchecked")
private List<Slot> getCraftingSlots(GuiContainer gui) {
List<Slot> craftingSlots = new ArrayList<>();
for (Slot slot : (List<Slot>) gui.inventorySlots.inventorySlots) {
if (GuiUtils.isCraftingSlot(slot)) {
craftingSlots.add(slot);
}
}
return craftingSlots;
}

@Override
public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) {
return null;
Expand All @@ -115,7 +172,7 @@ public List<TaggedInventoryArea> getInventoryAreas(GuiContainer gui) {
@Override
public boolean handleDragNDrop(GuiContainer gui, int mouseX, int mouseY, ItemStack draggedStack, int button) {
//When NEIAddons exist, give them to NEIAddons to handle
if(Loader.isModLoaded("NEIAddons") && NEEConfig.useNEIDragFromNEIAddons){
if (Loader.isModLoaded("NEIAddons") && NEEConfig.useNEIDragFromNEIAddons) {
return false;
}

Expand Down
Loading

0 comments on commit 15a6344

Please sign in to comment.