Заставить блок поменять оттенок.

Версия Minecraft
1.12.2
5,018
47
783
В общем, необходимо, чтобы если рядом с блоком находится вода, чтобы он менял оттенок своего цвета. Это можно как то провернуть? Интересует сам процесс изменения оттенка
 
1,417
44
594
Не знаю как 1.12, но в 1.7.10 можно сделать через glColor или через шейдер .
т.е. чекаешь нужный радиус до нахождения воды, и кидаешь параметр юниформом для шейдера или задаешь оттенок glColor'ом
 
5,018
47
783
Это нужно в рендер блока хук сувать, получается?
В 1.12 есть такая штука как getMapColor. Но я так и не понял как он работает и как его использовать
 
5,018
47
783
Нет. Это я знаю как делать. Мне нужно именно сам блок покрасить, вне зависимости от того, в каком Бирме это происходит. Тогда можно глобальное намокание песка сделать
 
5,018
47
783
5,018
47
783
5,018
47
783
5,018
47
783
К несчастью, я обезьяний кодер... без примера мне трудно что либо придумать и сделать.
 

jopi

Попрошайка
1,421
30
260
От части стыренный код, разделено на 16 цветов, я делал для покраски брони
Java:
//в начало класса, переменная типа, короче тут пишутся цвета в формате decimal или dec не помню
static final int[] lightColors = new int[]{1,16235008, 13787383, 491511, 16250671, 10352451, 16207266, 12237498, 7566195, 000147151,9699539,255, 4197388, 46080, 16711680, 197379, 16777215};
//в часть где ты хочешь менять оттенок через GL11 через матрицу. перед рендером блока ну типо blockmodel.render()
int color = lightColors[/*номер цвета*/];
GL11.glColor4f((float)(color >> 16) / 255.0F, (float)(color >> 8 & 255) / 255.0F, (float)(color & 255) / 255.0F, 1.0F);
Сайт где пишут ещё и decimal цвета: Просмотреть без смс и регистрации
 
5,018
47
783
Хук в рендер блока только если. А блоки - они все. Проверять ВСЕ блоки постоянно для нахождения песка - ужс, тьма . Да я в принципе через блокстейты уже все реализовал.
 
Сверху