blob: 9728e1eb75d225732eeacc310bc512bf6ce30aad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
package me.xmrvizzy.skyblocker.utils.title;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.util.math.MathHelper;
import java.util.ArrayList;
import java.util.List;
public class TitleContainer {
public static List<Title> titles = new ArrayList<>();
public static void init() {
HudRenderCallback.EVENT.register(TitleContainer::draw);
}
public static void addTitle(Title title) {
title.active = true;
title.lastX = 0;
titles.add(title);
}
public static void draw(DrawContext context, float tickDelta) {
var client = MinecraftClient.getInstance();
TextRenderer textRenderer = client.textRenderer;
List<Title> toRemove = new ArrayList<>();
float scale = 3F * (SkyblockerConfig.get().general.titleContainer.titleContainerScale / 100F);
float x;
float width = 0;
for (Title title : titles) {
width += textRenderer.getWidth(title.text) * scale + 10;
}
x = (client.getWindow().getScaledWidth() / 2) - width / 2;
for (Title title : titles) {
context.getMatrices().push();
context.getMatrices().translate(title.lastX, client.getWindow().getScaledHeight() * 0.7F, 0);
context.getMatrices().scale(scale, scale, scale);
title.lastX = MathHelper.lerp(tickDelta * 0.5F, title.lastX, x);
x += textRenderer.getWidth(title.text) * scale + 10;
context.drawText(textRenderer, title.text, 0, 0, title.color, true);
context.getMatrices().pop();
if (!title.active) {
toRemove.add(title);
}
}
titles.removeAll(toRemove);
}
}
|