Нарисовать прогрессбар на блоке в мире

Версия Minecraft
1.7.10
API
Forge
236
4
22
Всем привет. Есть такой вопрос, как нарисовать "прогрессбар" для obj модели? Я так предпологаю делается это в классе который наследует TileEntitySpecialRenderer через метод renderTileEntityAt(...), но вопрос, как это делать? По началу я думал, что это какая-то чёрная магия Tesselator`ов, но затем решил посмотреть код бассейна маны из Botania - там через GL11 это как-то реализовано🤔 ... Можно ли пример как и чем рендить допустим вертикальную полоску в центре модельки? Первый раз с таким столкнулся, знаю что такое возможно, но не могу разобраться сам.Заранее спасибо тем, кто поможет.
 
С GL11 на деле не знаком вообще. По этому сейчас эти "цифры" в методах почти не о чём для меня :(. Прийдётся методом "тыка" и подбора делать видимо.

Ты прикалываешься? Что тут тыкать? я тебе готовый метод дал.

  • Пихаешь его в свой класс рендера от TileEntitySpecialRenderer, регистрируешь его в Client Proxy.
  • В рендере добавляешь этот метод.
  • В строке выставляешь положение относительно центра по X, Y, Z ( GL11.glTranslatef((float)x, (float)y + 2.5F, (float)z); )
  • Задаёшь свой параметр в переменную h ( float h = entity.getHealth() )
  • Меняешь максимальное значение на своё ( entity.getMaxHealth() )
  • Проверяешь в игре
  • Закрываешь тему с пометкой решения
  • Завариваешь чай и читаешь гайды по методам GL11, чтобы понимать какие функции за что отвечают, для более кастомизируемых решений
 
Не, ну если ты сам интуитивно не понимаешь, что делает метод с параметрами x, y, z в начале, или что делают методы с говорящими названиями Rotate, Scale или Color, то это уже фиаско.
 
Повороты цвета и т.п. я заметил. А вот такие методы, как например:
GL11.glEnable(3553);
GL11.glEnable(2929);
GL11.glDepthMask(true);
GL11.glEnable(2896);
GL11.glDisable(3042);
GL11.glDepthMask(false);
GL11.glPopMatrix();
OpenGlHelper.glBlendFunc(770, 771, 1, 0);

Я уже не шарю, зачем нужны и как использовать их ;)
 
Не, ну если ты сам интуитивно не понимаешь, что делает метод с параметрами x, y, z в начале, или что делают методы с говорящими названиями Rotate, Scale или Color, то это уже фиаско.
Кинул декомпилированный код с магическими цифрами в методах и буянит... ТС справедливо заметил это. Какой бы ты крутой не был в опенгл, ты не знаешь значения всех констант наизусть.
 
Как я предполагаю, это позволит мне рендить 2D шкалу. А если мне нужно в 3D, допустим параллелепипедом? Это нужно из 6 плоскостей вручную рендить для получения параллелепипеда или можно сразу его рендить как-то?
 
Хотя я не крут в опенгл, но даже я знаю, что 3553 это GL_TEXTURE_2D
 
Берешь 8 вершин (x,y,z) и как на картинке собираешь из них четверки вершин. Потом для каждой четверки рисует полигон, тем же кодом, каким нарисовал один полигон
1607614365949.png
 
859F0F65957B10D9711D3EBC9F721B0456D732A2


и хз где доки по нему искать
1. GL11 (LWJGL 3.2.3 SNAPSHOT)
2. Minecraft Modding: Tips For GL11 And Rendering
Хочешь чему-то научиться - ищи информацию и разбирайся, а не проси скинуть готовое решение, пока сам не попробовал. С тем кодом, что я дал в пример, можно было за полчаса всё понять и сделать из задачи что ты описал в посте. Ждать, что тебе скинут мануал с подписанным комментарием к каждой строке - тупо.
 
Последнее редактирование:
Хочешь чему-то научиться - ищи информацию и разбирайся, а не проси скинуть готовое решение, пока сам не попробовал. С тем кодом, что я дал в пример, можно было за полчаса всё понять и сделать из задачи что ты описал в посте. Ждать, что тебе скинут мануал с подписанным комментарием к каждой строке - тупо.
Во 1 - я не прошу готового, иначе бы писал примерно так "Всем привет. Помогите написать мне мод, нужно чтобы блок делал то-то, то-то, выглядел так-то, так-то и тд. Я же прошу пример как отрисовать параллелепипед в 3D пространстве внутри модельки, потому что сам в этом не понимаю. Как рисовать прогресс-бар в GUI я уже, слава Богу, разобрался, а вот тут - какая-то путаница. В посте накидали кучу непонятных методов - я их вставил в игру - да, отрисовался "бар жизней", но как только я пытаюсь на угад подобрать цифры (а методов много, подбора соответственно тоже) - получаю либо плоскость на весь экран, грубо говоря, либо как-то боком развёрнутую.
Во 2 - не думаю, что можно выучить GL11 или от "а" до "я" Tesselator (а то и то и то сразу) за "пол часа", ибо как минимум Gl11 очень большая либа, судя по кол-ву методов в ней.
В 3 - т.к. сам я не понимаю в этом и "скопировать" негде подобное - мне и приходится просить тут помощи.
 
Тебе нужно исключить часть с Rotate, которая привязана к взгляду игрока, тогда шкала не будет вертеться. Затем подстраиваешь её под нужные координаты через Translate, и регулируешь размер
 
Назад
Сверху