[1.7.10] Состояние ГУИ

156
0
Добрый вечер, форумчане. Есть ли в майне свойство, которое отвечает за состояние определнного гуи, т.е. открыто ли оно или закрыто?
 
Есть эвент, который может показать открытого (объект класса) GUI окна, если не открыто GUI окно, то null объект. Любой вид GUI, не знаю как.
[merge_posts_bbcode]Добавлено: 11.03.2016 18:19:35[/merge_posts_bbcode]

GuiScreenEvent к примеру.
 
timaxa007 написал(а):
Есть эвент, который может показать открытого (объект класса) GUI окна, если не открыто GUI окно, то null объект. Любой вид GUI, не знаю как.
[merge_posts_bbcode]Добавлено: 11.03.2016 18:19:35[/merge_posts_bbcode]

GuiScreenEvent к примеру.
Ладно, допустим что это работает именно так, но я специально указал, что нужно именно состояние определенного гуи, а не всех.
 
Faik-man, что значит "состояние определенного гуи"? Что имелось виду под словом "состояние"?
 
Читал и ответил (во втором посте). Если нужен код, то вот пример:
Код:
@SubscribeEvent
public void place(GuiScreenEvent event) {
    if (event.gui != null) {
        System.out.println("Open GUI = " + event.gui.toString() + ".");
    }
    else System.out.println("Not open GUI.");
}
[merge_posts_bbcode]Добавлено: 11.03.2016 18:57:58[/merge_posts_bbcode]

Эвент тикущий (каждый тик будет писать сообщения в консоль).
 
XuPuPG написал(а):
Код:
public void ddd(GuiScreenEvent.ActionPerformedEvent event)    {
        if (event.gui instanceof GuiMainMenu)
//магея
    }
Элементарно проверяем на гуи
[merge_posts_bbcode]Добавлено: 11.03.2016 17:53:52[/merge_posts_bbcode]

https://dl.dropboxusercontent.com/s/h777x7ugherqs0w/forgeevents.html
Хотелось конечно избежать instanceof, но придется так. и да, у меня работает так

Код:
@SubscribeEvent
public void isOpenGui(GuiScreenEvent event) {
  if(event.gui instanceof GuiSmeltery) {
    System.out.println("ДЕБАГ");
  }
}
 
Agravaine написал(а):
Я же нормально ответил. Берешь переменную и проверяешь в любом месте.
И не нужно всякие ивенты городить.
Да, ваш метод работает, не спорю, но я никак не могу решить другую проблему. Дело в том, что я хочу запретить игроку закрывать гуи, если в одном из входных слотов есть итем, только вот не понимаю, как это сделать
 
Liahim написал(а):
А если он тупо вырубит игру? )))
Может проще сделать выброс айтемов при закрытии?
Нет, не проще. Мне важно, чтобы игрок не мог положить овер 100500 итемов во входные слоты и выйти из гуи, чтобы из них получилось такое же кол-во итемов в выходном слоте.
[merge_posts_bbcode]Добавлено: 15.03.2016 23:43:16[/merge_posts_bbcode]

То есть, игрок обязательно должен иметь открытый гуи, чтобы делать рецепты, иначе будет дисбаланс в игре

[merge_posts_bbcode]Добавлено: 15.03.2016 23:44:17[/merge_posts_bbcode]

Agravaine написал(а):
Запрети ему нажимать кнопки.
Что под этим подразумевается, можно поконкретнее?
 
Собственно, немного поразмыслив, понял, что вариант с дропом итемов при закрытии гуи оказался самым оптимальным, ввиду этого вопрос решен. Всем спасибо за советы)
 
Назад
Сверху