diff options
author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2023-01-17 09:44:34 -0500 |
---|---|---|
committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2023-01-17 09:44:34 -0500 |
commit | 5822703b7d770ec67a4c4ca00192006b8f0cb9b9 (patch) | |
tree | 7ded70762db28ec2321ce25bd20d3313a26c52df /src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java | |
parent | 6120b123648f2ccf7a5d5efea1a5c3600a725196 (diff) | |
download | Chatting-5822703b7d770ec67a4c4ca00192006b8f0cb9b9.tar.gz Chatting-5822703b7d770ec67a4c4ca00192006b8f0cb9b9.tar.bz2 Chatting-5822703b7d770ec67a4c4ca00192006b8f0cb9b9.zip |
smooth messages / scrolling animation speed
fix sending messages (again lol)
Diffstat (limited to 'src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java')
-rw-r--r-- | src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java b/src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java index 65140aa..ee94a35 100644 --- a/src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java +++ b/src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin_SmoothMessages.java @@ -1,9 +1,10 @@ package cc.woverflow.chatting.mixin; -import cc.polyfrost.oneconfig.utils.MathUtils; +import cc.woverflow.chatting.Chatting; import cc.woverflow.chatting.chat.ChatSearchingManager; import cc.woverflow.chatting.chat.ChatTabs; import cc.woverflow.chatting.config.ChattingConfig; +import cc.woverflow.chatting.utils.EaseOutQuart; import net.minecraft.client.gui.GuiNewChat; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.EnumChatFormatting; @@ -20,6 +21,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.List; import java.util.Locale; +/** + * Taken from BetterChat under LGPL 3.0 + * <a href="https://github.com/LlamaLad7/Better-Chat/blob/1.8.9/LICENSE">https://github.com/LlamaLad7/Better-Chat/blob/1.8.9/LICENSE</a> + */ @Mixin(GuiNewChat.class) public abstract class GuiNewChatMixin_SmoothMessages { @Shadow @@ -27,30 +32,25 @@ public abstract class GuiNewChatMixin_SmoothMessages { @Shadow public abstract float getChatScale(); - - private float chatting$percentComplete; //be nice and allow other mods to access this :) @Unique private int chatting$newLines; - @Unique - private long chatting$prevMillis = System.currentTimeMillis(); - @Unique + + private EaseOutQuart chatting$easeOutQuart; private float chatting$animationPercent; @Unique private int chatting$lineBeingDrawn; - private void updatePercentage(long diff) { - if (chatting$percentComplete < 1) chatting$percentComplete += 0.004f * diff; - chatting$percentComplete = MathUtils.clamp(chatting$percentComplete, 0, 1); - } - @Inject(method = "drawChat", at = @At("HEAD")) private void modifyChatRendering(CallbackInfo ci) { - long current = System.currentTimeMillis(); - long diff = current - chatting$prevMillis; - chatting$prevMillis = current; - updatePercentage(diff); - float t = chatting$percentComplete; - chatting$animationPercent = MathUtils.clamp(1 - (--t) * t * t * t, 0, 1); + if (chatting$easeOutQuart != null) { + if (chatting$easeOutQuart.isFinished()) { + chatting$easeOutQuart = null; + } else { + chatting$animationPercent = chatting$easeOutQuart.get(Chatting.INSTANCE.getDeltaTicks()); + } + } else { + chatting$animationPercent = 1; + } } @Inject(method = "drawChat", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;pushMatrix()V", ordinal = 0, shift = At.Shift.AFTER)) @@ -88,7 +88,7 @@ public abstract class GuiNewChatMixin_SmoothMessages { ChatTabs.INSTANCE.setHasCancelledAnimation(false); return; } - chatting$percentComplete = 0; + chatting$easeOutQuart = new EaseOutQuart(ChattingConfig.INSTANCE.getMessageSpeed() * 1000f, 0f, 1f, false); } @ModifyVariable(method = "setChatLine", at = @At("STORE"), ordinal = 0) |