From 8dcf4843621db96190c501ac426682c91d962422 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Thu, 16 Nov 2023 13:28:15 +0300 Subject: [PATCH] smoother ability cooldown display (rubberbanding due to late sync) --- .../dbotthepony/mc/otm/android/AndroidSwitchableFeature.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidSwitchableFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidSwitchableFeature.kt index a17deba7c..eb4bbe251 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidSwitchableFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidSwitchableFeature.kt @@ -1,8 +1,10 @@ package ru.dbotthepony.mc.otm.android import net.minecraft.client.gui.GuiGraphics +import net.minecraft.client.multiplayer.ClientLevel import net.minecraft.nbt.CompoundTag import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability +import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.core.math.RGBAColor import ru.dbotthepony.mc.otm.core.nbt.set @@ -31,6 +33,11 @@ abstract class AndroidSwitchableFeature(type: AndroidFeatureType<*>, android: Ma val cooldownPercent: Float get() { if (maxCooldown <= 0) return 0.0f + + if (ply.level() is ClientLevel) { + return ((cooldown.toFloat() - minecraft.partialTick) / maxCooldown.toFloat()).coerceIn(0.0f, 1.0f) + } + return (cooldown.toFloat() / maxCooldown.toFloat()).coerceIn(0.0f, 1.0f) }