Finish 1.16.x port

This commit is contained in:
vladmarica 2020-11-03 00:25:28 -04:00
parent cc9427d837
commit c40fa22ac1
2 changed files with 38 additions and 40 deletions

View file

@ -5,6 +5,7 @@ import com.google.common.collect.Ordering;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.vladmarica.betterpingdisplay.Config; import com.vladmarica.betterpingdisplay.Config;
import com.vladmarica.betterpingdisplay.hud.CustomPlayerListHud.EntryOrderComparator;
import com.vladmarica.betterpingdisplay.BetterPingDisplayMod; import com.vladmarica.betterpingdisplay.BetterPingDisplayMod;
import java.util.Comparator; import java.util.Comparator;
import java.util.Iterator; import java.util.Iterator;
@ -53,10 +54,10 @@ public final class CustomPlayerListHud {
int n; int n;
while(playerListIterator.hasNext()) { while(playerListIterator.hasNext()) {
PlayerListEntry playerListEntry = (PlayerListEntry)playerListIterator.next(); PlayerListEntry playerListEntry = (PlayerListEntry)playerListIterator.next();
n = mc.textRenderer.getStringWidth(hud.getPlayerName(playerListEntry).asFormattedString()); n = mc.textRenderer.getWidth(hud.getPlayerName(playerListEntry));
i = Math.max(i, n); i = Math.max(i, n);
if (obj != null && obj.getRenderType() != ScoreboardCriterion.RenderType.HEARTS) { if (obj != null && obj.getRenderType() != ScoreboardCriterion.RenderType.HEARTS) {
n = textRenderer.getStringWidth(" " + scoreboard.getPlayerScore(playerListEntry.getProfile().getName(), obj).getScore()); n = textRenderer.getWidth(" " + scoreboard.getPlayerScore(playerListEntry.getProfile().getName(), obj).getScore());
j = Math.max(j, n); j = Math.max(j, n);
} }
} }
@ -84,24 +85,21 @@ public final class CustomPlayerListHud {
int s = width / 2 - (r * n + (n - 1) * 5) / 2; int s = width / 2 - (r * n + (n - 1) * 5) / 2;
int t = 10; int t = 10;
int u = r * n + (n - 1) * 5; int u = r * n + (n - 1) * 5;
List<String> list2 = null; List<OrderedText> headerLines = null;
if (header != null) { if (header != null) {
list2 = mc.textRenderer.wrapStringToWidthAsList(header.asFormattedString(), width - 50); headerLines = mc.textRenderer.wrapLines(header, width - 50);
String string; for (OrderedText headerLine : headerLines) {
for(Iterator var18 = list2.iterator(); var18.hasNext(); u = Math.max(u, mc.textRenderer.getStringWidth(string))) { u = Math.max(u, mc.textRenderer.getWidth(headerLine));
string = (String)var18.next();
} }
} }
List<String> list3 = null; List<OrderedText> footerLines = null;
String string3;
Iterator var36;
if (footer != null) { if (footer != null) {
list3 = mc.textRenderer.wrapStringToWidthAsList(footer.asFormattedString(), width - 50); footerLines = mc.textRenderer.wrapLines(footer, width - 50);
for(var36 = list3.iterator(); var36.hasNext(); u = Math.max(u, mc.textRenderer.getStringWidth(string3))) { for (OrderedText footerLine : footerLines) {
string3 = (String)var36.next(); u = Math.max(u, mc.textRenderer.getWidth(footerLine));
} }
} }
@ -110,23 +108,23 @@ public final class CustomPlayerListHud {
int var10002; int var10002;
int var10004; int var10004;
int y; int y;
if (list2 != null) { if (headerLines != null) {
var10000 = width / 2 - u / 2 - 1; var10000 = width / 2 - u / 2 - 1;
var10001 = t - 1; var10001 = t - 1;
var10002 = width / 2 + u / 2 + 1; var10002 = width / 2 + u / 2 + 1;
var10004 = list2.size(); var10004 = headerLines.size();
DrawableHelper.fill(var10000, var10001, var10002, t + var10004 * 9, Integer.MIN_VALUE); DrawableHelper.fill(stack, var10000, var10001, var10002, t + var10004 * 9, Integer.MIN_VALUE);
for(var36 = list2.iterator(); var36.hasNext(); t += 9) { for (OrderedText headerLine : headerLines) {
string3 = (String)var36.next(); y = mc.textRenderer.getWidth(headerLine);
y = mc.textRenderer.getStringWidth(string3); mc.textRenderer.drawWithShadow(stack, headerLine, (float)(width / 2 - y / 2), (float)t, -1);
mc.textRenderer.drawWithShadow(string3, (float)(width / 2 - y / 2), (float)t, -1); t += 9;
} }
++t; ++t;
} }
DrawableHelper.fill(width / 2 - u / 2 - 1, t - 1, width / 2 + u / 2 + 1, t + m * 9, Integer.MIN_VALUE); DrawableHelper.fill(stack, width / 2 - u / 2 - 1, t - 1, width / 2 + u / 2 + 1, t + m * 9, Integer.MIN_VALUE);
int w = mc.options.getTextBackgroundColor(553648127); int w = mc.options.getTextBackgroundColor(553648127);
int ai; int ai;
@ -135,7 +133,7 @@ public final class CustomPlayerListHud {
ai = x % m; ai = x % m;
int aa = s + y * r + y * 5; int aa = s + y * r + y * 5;
int ab = t + ai * 9; int ab = t + ai * 9;
DrawableHelper.fill(stack, aa, ab, aa + r -1, ab + 8, w); DrawableHelper.fill(stack, aa, ab, aa + r, ab + 8, w);
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
RenderSystem.enableAlphaTest(); RenderSystem.enableAlphaTest();
RenderSystem.enableBlend(); RenderSystem.enableBlend();
@ -150,34 +148,34 @@ public final class CustomPlayerListHud {
mc.getTextureManager().bindTexture(player.getSkinTexture()); mc.getTextureManager().bindTexture(player.getSkinTexture());
ah = 8 + (bl2 ? 8 : 0); ah = 8 + (bl2 ? 8 : 0);
int ad = 8 * (bl2 ? -1 : 1); int ad = 8 * (bl2 ? -1 : 1);
DrawableHelper.blit(aa, ab, 8, 8, 8.0F, (float)ah, 8, ad, 64, 64); DrawableHelper.drawTexture(stack, aa, ab, 8, 8, 8.0F, (float)ah, 8, ad, 64, 64);
if (playerEntity != null && playerEntity.isPartVisible(PlayerModelPart.HAT)) { if (playerEntity != null && playerEntity.isPartVisible(PlayerModelPart.HAT)) {
int ae = 8 + (bl2 ? 8 : 0); int ae = 8 + (bl2 ? 8 : 0);
int af = 8 * (bl2 ? -1 : 1); int af = 8 * (bl2 ? -1 : 1);
DrawableHelper.blit(aa, ab, 8, 8, 40.0F, (float)ae, 8, af, 64, 64); DrawableHelper.drawTexture(stack, aa, ab, 8, 8, 40.0F, (float)ae, 8, af, 64, 64);
} }
aa += 9; aa += 9;
} }
String string4 = hud.getPlayerName(player).asFormattedString(); Text playerName = hud.getPlayerName(player);
if (player.getGameMode() == GameMode.SPECTATOR) { if (player.getGameMode() == GameMode.SPECTATOR) {
mc.textRenderer.drawWithShadow(Formatting.ITALIC + string4, (float)aa, (float)ab, -1862270977); mc.textRenderer.drawWithShadow(stack, playerName, (float)aa, (float)ab, -1862270977);
} else { } else {
mc.textRenderer.drawWithShadow(string4, (float)aa, (float)ab, -1); mc.textRenderer.drawWithShadow(stack, playerName, (float)aa, (float)ab, -1);
} }
if (obj != null && player.getGameMode() != GameMode.SPECTATOR) { if (obj != null && player.getGameMode() != GameMode.SPECTATOR) {
int ag = aa + i + 1; int ag = aa + i + 1;
ah = ag + q; ah = ag + q;
if (ah - ag > 5) { if (ah - ag > 5) {
PlayerListHudUtil.renderScoreboardObjective(hud, obj, ab, gameProfile.getName(), ag, ah, player); PlayerListHudUtil.renderScoreboardObjective(hud, stack, obj, ab, gameProfile.getName(), ag, ah, player);
} }
} }
// Here is the magic, rendering the ping text // Here is the magic, rendering the ping text
String pingString = String.format(config.getTextFormatString(), player.getLatency()); String pingString = String.format(config.getTextFormatString(), player.getLatency());
int pingStringWidth = textRenderer.getStringWidth(pingString); int pingStringWidth = textRenderer.getWidth(pingString);
int textX = r + aa - pingStringWidth + PING_TEXT_RENDER_OFFSET; int textX = r + aa - pingStringWidth + PING_TEXT_RENDER_OFFSET;
if (displayPlayerIcons) { if (displayPlayerIcons) {
@ -192,11 +190,11 @@ public final class CustomPlayerListHud {
? PingColors.getColor(player.getLatency()) ? PingColors.getColor(player.getLatency())
: config.getTextColor(); : config.getTextColor();
textRenderer.drawWithShadow(pingString, (float) textX, (float) ab, pingTextColor); textRenderer.drawWithShadow(stack, pingString, (float) textX, (float) ab, pingTextColor);
if (config.shouldRenderPingBars()) { if (config.shouldRenderPingBars()) {
PlayerListHudUtil.renderLatencyIcon( PlayerListHudUtil.renderLatencyIcon(
hud, r, aa - (displayPlayerIcons ? PLAYER_ICON_WIDTH : 0), ab, player); hud, stack, r, aa - (displayPlayerIcons ? PLAYER_ICON_WIDTH : 0), ab, player);
} else { } else {
// If we don't render ping bars, we need to reset the render system color so the rest // If we don't render ping bars, we need to reset the render system color so the rest
// of the player list renders properly // of the player list renders properly
@ -205,18 +203,18 @@ public final class CustomPlayerListHud {
} }
} }
if (list3 != null) { if (footerLines != null) {
t += m * 9 + 1; t += m * 9 + 1;
var10000 = width / 2 - u / 2 - 1; var10000 = width / 2 - u / 2 - 1;
var10001 = t - 1; var10001 = t - 1;
var10002 = width / 2 + u / 2 + 1; var10002 = width / 2 + u / 2 + 1;
var10004 = list3.size(); var10004 = footerLines.size();
DrawableHelper.fill(var10000, var10001, var10002, t + var10004 * 9, Integer.MIN_VALUE); DrawableHelper.fill(stack, var10000, var10001, var10002, t + var10004 * 9, Integer.MIN_VALUE);
for(Iterator var39 = list3.iterator(); var39.hasNext(); t += 9) { for (OrderedText footerLine : footerLines) {
String string5 = (String)var39.next(); ai = textRenderer.getWidth(footerLine);
ai = textRenderer.getStringWidth(string5); textRenderer.drawWithShadow(stack, footerLine, (float)(width / 2 - ai / 2), (float)t, -1);
textRenderer.drawWithShadow(string5, (float)(width / 2 - ai / 2), (float)t, -1); t += 9;
} }
} }
} }
@ -233,4 +231,4 @@ public final class CustomPlayerListHud {
.result(); .result();
} }
} }
} }

View file

@ -1,7 +1,7 @@
{ {
"schemaVersion": 1, "schemaVersion": 1,
"id": "betterpingdisplay", "id": "betterpingdisplay",
"version": "1.0", "version": "1.1",
"name": "Better Ping Display", "name": "Better Ping Display",
"description": "Shows the actual ping number instead of just bars in the player list!", "description": "Shows the actual ping number instead of just bars in the player list!",