- Версия(и) Minecraft
- Any
Если быть вкратце, то функция переводит время игры в привычное нам представление(час/минута).
Код:
Код:
Kotlin:
fun defTicks2Time(ticks: Int): LocalTime {
val x = ticks % 24000 //Каждые 24к тиков - новый день, зачем учитывать 24000k+n?
val hour = x / 1000 //если в дне 24 часа, а в майне длится 24к тиков, то сколько тиков в часе? Верно, 1000.
val minutes = x % 1000.0 / 16.666666666666668 // остаток вернёт кол-во минут в тиках. Поделив на 1000, получим нормализованное значение от 0 до 1. А если ещё и умножить на 60, то получим в привычных нам минутах x / 1000 * 60 = x * 6/100 = х * 1/16.(6) = х / 16.(6)
return LocalTime.of(hour, Math.round(minutes).toInt()/*я округляю минуты. А ты можешь дробный остаток достать и перевести в секунды по аналогии с минутами*/).plusHour(6) // сдвиг в майне. Дело в том, что, по опытным измерениям, 0 тиков = 6 AM.
}