Files
NotEnoughItems/src/main/java/codechicken/nei/api/GuiInfo.java
T

42 lines
1.5 KiB
Java
Raw Normal View History

2014-04-29 10:54:20 +10:00
package codechicken.nei.api;
import codechicken.nei.NEIChestGuiHandler;
import codechicken.nei.NEICreativeGuiHandler;
import codechicken.nei.NEIDummySlotHandler;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.gui.inventory.GuiContainerCreative;
2014-04-29 10:54:20 +10:00
import java.util.HashSet;
2014-04-29 10:54:20 +10:00
import java.util.Iterator;
import java.util.LinkedList;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
2014-04-29 10:54:20 +10:00
public class GuiInfo {
2019-12-30 20:19:16 -08:00
public static final LinkedList<INEIGuiHandler> guiHandlers = new LinkedList<>();
public static final HashSet<Class<? extends GuiContainer>> customSlotGuis = new HashSet<>();
public static ReentrantReadWriteLock guiHandlersLock = new ReentrantReadWriteLock();
public static Lock writeLock = guiHandlersLock.writeLock();
public static Lock readLock = guiHandlersLock.readLock();
2014-04-29 10:54:20 +10:00
public static void load() {
API.registerNEIGuiHandler(new NEICreativeGuiHandler());
API.registerNEIGuiHandler(new NEIChestGuiHandler());
API.registerNEIGuiHandler(new NEIDummySlotHandler());
customSlotGuis.add(GuiContainerCreative.class);
2014-04-29 10:54:20 +10:00
}
public static void clearGuiHandlers() {
try {
GuiInfo.writeLock.lock();
guiHandlers.removeIf(ineiGuiHandler -> ineiGuiHandler instanceof GuiContainer);
} finally {
GuiInfo.writeLock.unlock();
}
2014-04-29 10:54:20 +10:00
}
public static boolean hasCustomSlots(GuiContainer gui) {
return customSlotGuis.contains(gui.getClass());
}
2014-04-29 10:54:20 +10:00
}