Skip to content

Commit 5cc609e

Browse files
committed
make fluid display correctly in wct
1 parent 612b9f5 commit 5cc609e

File tree

3 files changed

+61
-1
lines changed

3 files changed

+61
-1
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ dependencies {
5252
deobfCompile 'curse.maven:codechicken-lib-1-8-242818:2779848' //ccl
5353
deobfCompile 'curse.maven:gregtech-ce-unofficial-557242:3784798' // gt
5454
compile files('libs/appliedenergistics2-rv6-stable-7-extended_life-v0.54.13-dev.jar') //pae2
55-
compileOnly "curse.maven:dynamistics-383632:3056455" // dy
55+
compileOnly 'curse.maven:dynamistics-383632:3056455' // dy
5656
}
5757

5858
minecraft {

src/main/java/com/glodblock/github/coremod/FCClassTransformer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ public byte[] transform(String name, String transformedName, byte[] code) {
4848
case "appeng.client.gui.implementations.GuiCraftConfirm":
4949
tform = GuiCraftingTransformer.INSTANCE;
5050
break;
51+
case "p455w0rd.wct.client.gui.GuiCraftingCPU":
52+
case "p455w0rd.wct.client.gui.GuiCraftConfirm":
53+
tform = WCTGuiCraftingTransformer.INSTANCE;
54+
break;
5155
default:
5256
return code;
5357
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.glodblock.github.coremod.transform;
2+
3+
import com.glodblock.github.coremod.FCClassTransformer;
4+
import org.objectweb.asm.ClassVisitor;
5+
import org.objectweb.asm.MethodVisitor;
6+
import org.objectweb.asm.Opcodes;
7+
8+
public class WCTGuiCraftingTransformer extends FCClassTransformer.ClassMapper {
9+
10+
public static final WCTGuiCraftingTransformer INSTANCE = new WCTGuiCraftingTransformer();
11+
12+
private WCTGuiCraftingTransformer() {
13+
// NO-OP
14+
}
15+
16+
@Override
17+
protected ClassVisitor getClassMapper(ClassVisitor downstream) {
18+
return new WCTGuiCraftingTransformer.TransformGuiCrafting(Opcodes.ASM5, downstream);
19+
}
20+
21+
private static class TransformGuiCrafting extends ClassVisitor {
22+
23+
TransformGuiCrafting(int api, ClassVisitor cv) {
24+
super(api, cv);
25+
}
26+
27+
@Override
28+
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
29+
if ("drawFG".equals(name)) {
30+
return new WCTGuiCraftingTransformer.TransformFluidIcon(api, super.visitMethod(access, name, desc, signature, exceptions));
31+
}
32+
return super.visitMethod(access, name, desc, signature, exceptions);
33+
}
34+
35+
}
36+
37+
private static class TransformFluidIcon extends MethodVisitor {
38+
39+
TransformFluidIcon(int api, MethodVisitor mv) {
40+
super(api, mv);
41+
}
42+
43+
@Override
44+
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
45+
super.visitMethodInsn(opcode, owner, name, desc, itf);
46+
if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("createItemStack")) {
47+
super.visitMethodInsn(Opcodes.INVOKESTATIC,
48+
"com/glodblock/github/coremod/CoreModHooks",
49+
"displayFluid",
50+
"(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;",
51+
false);
52+
}
53+
}
54+
55+
}
56+
}

0 commit comments

Comments
 (0)