AdvancedGUI

243
28
202
Итак, здравствуйте. В данной теме я хотел бы поделится своими наработками по улучшениям ГПИ. Исходники и примеры использования можно найти на GitHub.

AdvancedGUI - библиотека, добавляющая множество новых элементов для создания продвинутых интерфейсов. На данный момент поддерживается создание простых ГПИ и ГПИ для инвентарей. Для демонстрации возможностей я создал тестовый проект: advancedgui demo (видео)(обновлено 24.03.18). Так же предоставляю его в собраном виде: AdvancedGUI-1.7.10 (обновлено 24.03.18) и AdvancedGUI-1.12.2 (обновлено 24.03.18). Исходники вместе с библиотекой доступны в репозитории.

Поддерживаемые версии
  • 1.7.10
  • 1.12.2
Функционал и использование абсолютно идентичны.

Планы

Я использую библиотеку для своего мода, поэтому её развитие будет продолжаться. Поэтому в планах следующее:

- поддержка оверлея,
- улучшенная работа с текстом,
- анимация элементов.

Так же в планах портировать её на другие версии.

Обновления

- порт на 1.12.2
- организация структуры
- фиксы ошибок
- полное изменение структуры
- добавлена возможность создавать разделы
- добавлены новые элементы
- несколько эшелонов фиксов
 
Последнее редактирование:
2,505
81
397
У тебя неправильная архитектура.
Будет намного удобнее, если ты сделаешь какой-нибудь GuiWidget, в котором будет позиция и прочие общие штуки. А всякие GuiLabel, GuiButton, GuiTextBox, GuiSlider и т.п. будешь наследовать от GuiWidget. А затем создашь GuiPanel, которая будет список с GuiWidget. Такой архитектурой управлять будет намного проще. Можно будет создавать панели, на которых будут находиться другие панели и прочие виджеты. И твой GUIFramework будет тоже панелью. И почти не будет повторяющегося кода.
Можешь посмотреть реализацию@JustAGod'a. Из того, что я видел в паблике, у него самое неплохое. Хотя он тоже нагородил кучу лишнего.
 
1,111
47
420
У тебя неправильная архитектура.
Будет намного удобнее, если ты сделаешь какой-нибудь GuiWidget, в котором будет позиция и прочие общие штуки. А всякие GuiLabel, GuiButton, GuiTextBox, GuiSlider и т.п. будешь наследовать от GuiWidget. А затем создашь GuiPanel, которая будет список с GuiWidget. Такой архитектурой управлять будет намного проще. Можно будет создавать панели, на которых будут находиться другие панели и прочие виджеты. И твой GUIFramework будет тоже панелью. И почти не будет повторяющегося кода.
Можешь посмотреть реализацию@JustAGod'a. Из того, что я видел в паблике, у него самое неплохое. Хотя он тоже нагородил кучу лишнего.
Только не втирай мне про синхронайз. Я уже осознал.
Интерполяция пока мне не нужна, а либу никто не юзает так что норм.
 
1,111
47
420
Кстати я пишу большое дополнение к JustACore для GUIContainer. Сложно слоты в мои оверлеи впихнуть, но как сделаю будет круто))
 
608
5
15
А чё там сложного? Зафигарить Overlay slot по надстройкам.
 
2,505
81
397
Только не втирай мне про синхронайз. Я уже осознал.
Ага.. синхронайз убрал, а конкурентные коллекции оставил.. Ещё и эксепшн конкурентной модификации игноришь до сих пор.

И вообще я не про синхронайзед говорил.
 
243
28
202
Обновление от 02.03.18:
- порт на 1.12.2
- организация структуры
- фиксы ошибок
 
Последнее редактирование:
243
28
202
Обновление от 24.03.18:
- полное изменение структуры
- добавлены разделы
- добавлены новые элементы
- несколько эшелонов фиксов
 

deleted.user

Мошенник
321
43
Еще хочется спросить, как ты считаешь слоты для контейнера в примере?
Java:
SLOT_ARMOR_1 = 0,
    SLOT_ARMOR_2 = 1,
    SLOT_ARMOR_3 = 2,
    SLOT_ARMOR_4 = 3,

    SLOT_HOTBAR_1 = 4,
    SLOT_HOTBAR_2 = 5,
    SLOT_HOTBAR_3 = 6,
    SLOT_HOTBAR_4 = 7,
    SLOT_HOTBAR_5 = 8,
    SLOT_HOTBAR_6 = 9,
    SLOT_HOTBAR_7 = 10,
    SLOT_HOTBAR_8 = 11,
    SLOT_HOTBAR_9 = 12,
    
    SLOT_INVENTORY_FIRST = 13,
    SLOT_INVENTORY_LAST = 162;
Тут я вижу последний слот инвентаря - 162. Полопатив код, увидел, что всего слотов 150 у игрока, не считая хотбара и брони. Как мне нормально изменить для рабочего вида это кол-во до 10 например? Все попытки приводят к крашу. Еще зацепило int slotDisatance = 18;, что это?
 
Итак, здравствуйте. В данной теме я хотел бы поделится своими наработками по улучшениям ГПИ. Исходники и примеры использования можно найти на GitHub.

AdvancedGUI - библиотека, добавляющая множество новых элементов для создания продвинутых интерфейсов. На данный момент поддерживается создание простых ГПИ и ГПИ для инвентарей. Для демонстрации возможностей я создал тестовый проект: advancedgui demo (видео)(обновлено 24.03.18). Так же предоставляю его в собраном виде: AdvancedGUI-1.7.10 (обновлено 24.03.18) и AdvancedGUI-1.12.2 (обновлено 24.03.18). Исходники вместе с библиотекой доступны в репозитории.

Поддерживаемые версии
  • 1.7.10
  • 1.12.2
Функционал и использование абсолютно идентичны.

Планы

Я использую библиотеку для своего мода, поэтому её развитие будет продолжаться. Поэтому в планах следующее:

- поддержка оверлея,
- улучшенная работа с текстом,
- анимация элементов.

Так же в планах портировать её на другие версии.

Обновления

- порт на 1.12.2
- организация структуры
- фиксы ошибок
- полное изменение структуры
- добавлена возможность создавать разделы
- добавлены новые элементы
- несколько эшелонов фиксов
На гитхабе пусто:(
 
Сверху