/
JeiIntegration.java
63 lines (51 loc) · 2.29 KB
/
JeiIntegration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package slimeknights.tmechworks.integration;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin;
import mezz.jei.api.gui.handlers.IGuiContainerHandler;
import mezz.jei.api.registration.IGuiHandlerRegistration;
import mezz.jei.api.registration.ISubtypeRegistration;
import net.minecraft.client.renderer.Rectangle2d;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.ResourceLocation;
import slimeknights.tmechworks.client.gui.DrawbridgeScreen;
import slimeknights.tmechworks.common.MechworksContent;
import slimeknights.tmechworks.library.Util;
import java.util.ArrayList;
import java.util.List;
@JeiPlugin
public class JeiIntegration implements IModPlugin {
@Override
public ResourceLocation getPluginUid() {
return Util.getResource("jei");
}
@Override
public void registerItemSubtypes(ISubtypeRegistration registration) {
registration.registerSubtypeInterpreter(MechworksContent.Blocks.firestarter.asItem(), stack -> {
CompoundNBT nbt = stack.getTag();
boolean shouldExtinguish = true;
if(nbt != null)
shouldExtinguish = nbt.getBoolean("extinguish");
return shouldExtinguish ? "extinguish" : "keepLit";
});
}
@Override
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
registration.addGuiContainerHandler(DrawbridgeScreen.class, new IGuiContainerHandler<DrawbridgeScreen>() {
@Override
public List<Rectangle2d> getGuiExtraAreas(DrawbridgeScreen gui) {
List<Rectangle2d> rects = new ArrayList<>();
int guiLeft = gui.getGuiLeft();
int guiTop = gui.getGuiTop();
int xSize = gui.getXSize();
int ySize = gui.getYSize();
rects.add(new Rectangle2d(guiLeft - 44, guiTop + ySize - 65, 47, 60)); // Upgrades cutout
rects.add(new Rectangle2d(guiLeft + xSize - 3, guiTop + ySize - 37, 29, 32)); // Disguise cutout
if(gui.isAdvanced){
rects.add(new Rectangle2d(guiLeft - 18, guiTop - 80, 213, 148)); // Advanced UI
rects.add(new Rectangle2d(guiLeft + 191, guiTop + 4, 63, 60)); // Advanced arrows
}
return rects;
}
});
}
}