Рендер жидкости внутри блока [1.12.2]

Версия Minecraft
1.12.2
Приветствую. Собственно, вопрос в названии.
BlockRendererDispatcher не работает, просто наложение текстуры на квады тоже. Даже не знаю, в какую сторону копать. На форуме на эту тему не нашёл ничего, в остальном интернете - только под старые версии.
Цель? - Цистерна.
 
7,099
324
1,510
просто наложение текстуры на квады тоже
Значит, неправильно делаешь. Вот тут для тестов юзаю текстуру воды и вроде правильно рисуется
Scala:
val atlasSpriteRune: TextureAtlasSprite = Minecraft.getMinecraft.getTextureMapBlocks
    .getAtlasSprite(FluidRegistry.WATER.getStill().toString)
 
В таком случае, прошу прощения за нубский вопрос, но как собственно забиндить TextureAtlasSprite? Видел тему, где предлагали использовать
GLStateManager.bindTexture(GL11.GL_TEXTURE_2D, sprite.getGLTexture)
но метода getGLTexture я не нашёл даже близко.
 
7,099
324
1,510
При работе с квадами opengl не надо юзать. Поэтому биндить ничего не нужно. Нужно лишь создавать квады. Для твоей задачи, напримре, квад который будет иметь нужный TextureAtlasSprite. Например, если есть какой-то произвольный квад, на который хочешь натянуть другой атлас, то можно перегнать этот квад в билдер, сетнуть нужный атлас и вызвать .build(), получив новый квад с другой текстурой.
Java:
BakedQuad someQuad = ???
UnpackedBakedQuad.Builder builder = newUnpackedBakedQuad.Builder(someQuad.getFormat());
someQuad.pipe(builder);
//че-то делаем с builder, чекни его методы
BakedQuad newQuad = builder.build();
 
Тогда другой вопрос: А разве просто отрисовка статичной текстуры является хорошим решением данной задачи? Может, есть оптимальнее?
 
7,099
324
1,510
отрисовка статичной текстуры
Текстура воды имеет анимацию. Не знаю, как реализовано, возможно, нужно будет руками циклично менять uv
Может, есть оптимальнее?
Если хочешь юзать opengl, то можно делать через TileEntitySpecialRenderer. В плане блока с жидкостью это вроде хорошая идея: не надо ребилдить весь чанк при изменении жидкости в тайле. С другой стороны рисоваться заново оно будет каждый кадр
 
Изначальной идеей было сделать это через TESR с помощью OpenGL. Собственно, сделал, вот только проблема: менять-то UV меняется, вот только изменение при рендере непосредственно жидкости - интерполировано, в то время как простая смена UV резко меняет картинки. Уму не приложу, что можно с этим сделать.
 
Чтош, код, который скинул господин @Sainthozier помог. Странно, когда я впихивал его в уже существующий класс, он не работал, полная копипаста в новый - работает. Думаю, мой вопрос решён.
 
Сверху