Плавная смена цвета.

Версия Minecraft
1.12.2
5,018
47
783
Здравствуйте! В общем, я сделал некий предмет, которому можно устанавливать цвет функцией setColor, прямо в процессе игры.
Суть в том, что у меня имеется температура тела игрока и этот предмет должен ее измерять. Температура у меня может колебаться от 34 до 42 градусов. (float).
В общем, необходимо сделать как бы плавный градиент-смену цвета каждую, скажем, 0.1 в тик. (34.1 - синий, 34.2 - чуть голубее, 36.1 - зеленый с оттенком голубизны, 40 - красный)
Мне самому(и то не совсем) удалось сделать что-то подобное. Но оно совсем не работает как положено. Точнее, совсем не работает.
Java:
for(float i = 34; i < 42F; i += 0.01f) {
    cap.addTempBody(i);
    hl.setColor((int)i);
}
 
87
1
12
не работает потому что у тебя цикл отрабатывает в одном тике, в следующем он снова вызывается и отрабатывает. Поэтому у тебя "ничего не работает", хотя на самом деле значения меняются очень быстро. Тебе нужно сделать примерно следующее: Увеличивать значение не через цикл, а проверять какие то условия и уже через update() твоего ентити(персонажа) обновлять значение(увеличивать или уменьшать).
Типа стоишь ты рядом с лавой, температура тела будет повышаться на 0.1.
 
7,099
324
1,510
Сделай градуснику собственную температуру, которая будет каждый тик стремииться к температуре игрока. Для рендера юзать температуру градусника
 
5,018
47
783
Проблема решена путем обхода проблемы. Я просто буду получать температуру, кастить в целое и присваивать предмету при юзу. Но тему не закрываю, она еще мне понадобится когда я буду делать плавный переход цветов биомов. Хотя Dahaka уже в целом, ответ дал, но у меня руки то кривые, наверняка ничего сразу не заработает:)
 
Сверху