Скрыть NEI-интерфейс

Версия Minecraft
1.7.10
API
Forge
Здравствуйте. При разработке большого по размеру интерфейса возникла проблема - на него налезает NEI и не даёт кликать по некоторой части GUI.
Есть ли возможность каким-то образом скрыть NEI при открытии конкретного GUI, как это работает по клавише "O"? Заранее спасибо.
 
Решение
Java:
private static final boolean HAS_NEI = Loader.isModLoaded("NotEnoughItems");

private boolean neiOverlayHidden;

public YourGui(){
    if(HAS_NEI){
        neiOverlayHidden = isNEIOverlayHidden();
        setNEIOverlayHidden(true);
    }
}

@Override
public void onGuiClosed(){
    super.onGuiClosed();
    if(HAS_NEI){
        setNEIOverlayHidden(neiOverlayHidden);
    }
}

@Method(modid = "NotEnoughItems")
private void setNEIOverlayHidden(boolean value){
    NEIClientConfig.getSetting("inventory.hidden").setBooleanValue(value);
}

@Method(modid = "NotEnoughItems")
private boolean isNEIOverlayHidden(){
    return NEIClientConfig.isHidden();
}
Почему бы тебе не залезть в код NEI, найти там код который отвечает за скрытие при нажатии на "O", и "адаптировать" (скопипастить) его туда, где открывается твой гуи?
Потому что хочется сделать по-нормальному как-то. К примеру, через API, правда в открытых источниках я не нашёл никаких упоминаний о скрытии конкретно всего NEI. Залезть в код NEI - хороший план, но должен быть способ проще и лучше. Наверно.
 
33
1
14
Не обязательно же при каждой надобности копипастить. Можно вынести код в метод, сделать его статическим и вызывать при надобности. Плюс возможно что этот метод за тебя уже реализовали в NEI и тебе останется его только вызвать.
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Java:
private static final boolean HAS_NEI = Loader.isModLoaded("NotEnoughItems");

private boolean neiOverlayHidden;

public YourGui(){
    if(HAS_NEI){
        neiOverlayHidden = isNEIOverlayHidden();
        setNEIOverlayHidden(true);
    }
}

@Override
public void onGuiClosed(){
    super.onGuiClosed();
    if(HAS_NEI){
        setNEIOverlayHidden(neiOverlayHidden);
    }
}

@Method(modid = "NotEnoughItems")
private void setNEIOverlayHidden(boolean value){
    NEIClientConfig.getSetting("inventory.hidden").setBooleanValue(value);
}

@Method(modid = "NotEnoughItems")
private boolean isNEIOverlayHidden(){
    return NEIClientConfig.isHidden();
}
 
Сверху