diff --git a/client/src/main/java/client/Client.java b/client/src/main/java/client/Client.java index 3e5e8a30..31f48479 100755 --- a/client/src/main/java/client/Client.java +++ b/client/src/main/java/client/Client.java @@ -281,13 +281,11 @@ public class Client implements IThreadListener { public static final int LOG_BUFFER = 32768; public static final int MIN_WIDTH = 800; public static final int MIN_HEIGHT = 450; - private static final LazyLoader CLIENT_NIO_EVENTLOOP = new LazyLoader() - { - protected NioEventLoopGroup load() - { - return new NioEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Client IO #%d").setDaemon(true).build()); - } - }; + private static final LazyLoader CLIENT_NIO_EVENTLOOP = new LazyLoader() { + protected NioEventLoopGroup load() { + return new NioEventLoopGroup(0, new ThreadFactoryBuilder().setNameFormat("Netty Client IO #%d").setDaemon(true).build()); + } + }; private final Queue> tasks = new ArrayDeque>(); private final Map bars = Maps.newTreeMap(); @@ -2998,63 +2996,39 @@ public class Client implements IThreadListener { } } - private static String formatPing(int ping) { - TextColor base; - if(ping < 0) { - base = TextColor.GRAY; + private void drawPing(int x, int y, int ping) { + int bars; + TextColor color; + if(ping < 0 || ping >= 20000) { + bars = 0; + color = ping < 0 ? TextColor.GRAY : TextColor.DRED; } else if(ping < 80) { - base = TextColor.DGREEN; + bars = ping < 50 ? 8 : 7; + color = TextColor.GREEN; } else if(ping < 160) { - base = TextColor.GREEN; + bars = ping < 120 ? 6 : 5; + color = TextColor.DGREEN; } else if(ping < 350) { - base = TextColor.YELLOW; + bars = ping < 220 ? 4 : 3; + color = TextColor.YELLOW; } else if(ping < 700) { - base = TextColor.RED; + bars = ping < 500 ? 2 : 1; + color = TextColor.RED; } else { - base = TextColor.DRED; + bars = 1; + color = TextColor.DRED; + } + Drawing.drawTextRight(color + (ping < 10000 ? String.format("%d", ping) + "ms" : String.format("%.1f", ((float)ping) / 1000.0f) + "s"), x - 18, y, 0xffffffff); + for(int z = 0; z < bars; z++) { + Drawing.drawRect(x - 15 + z * 2, y + 8 - z + Font.YGLYPH - 10 + (Font.YGLYPH < 8 ? 1 : 0), 1, z + 1, 0xff000000 | color.color); } - return base + (ping < 10000 ? String.format("%d", ping) + "ms" : String.format("%.1f", ((float)ping) / 1000.0f) + "s"); } -/* - private void drawPing(int width, int xPos, int yPos, int ping) { - GlState.color(1.0F, 1.0F, 1.0F, 1.0F); - this.gm.getTextureManager().bindTexture(icons); - int rectX = 0; - int rectWidth = 0; - if(ping < 0 || ping >= 20000) { - rectWidth = 5; - } - else if(ping < 150) { - rectWidth = 0; - } - else if(ping < 300) { - rectWidth = 1; - } - else if(ping < 600) { - rectWidth = 2; - } - else if(ping < 1000) { - rectWidth = 3; - } - else { - rectWidth = 4; - } - - String str = this.formatPing(ping); - - this.zLevel += 100.0F; - this.drawTexturedModalRect(xPos + width - 11, yPos, 0 + rectX * 10, 176 + rectWidth * 8, 10, 8); - SKC.drawString(str, xPos + width - (11 + 1 + SKC.getStringWidth(str)), yPos, -1); - this.zLevel -= 100.0F; - } -*/ - public void drawInfo() { ClientPlayer netHandler = this.getNetHandler(); if(netHandler != null) { @@ -3066,9 +3040,9 @@ public class Client implements IThreadListener { for(Entry elem : this.playerList.entrySet()) { int x = this.fbX / 2 - (w * 300) / 2 + bx * 300; int y = 10 + by * (Font.YGLYPH + 2); - Drawing.drawGradient(x, y, 300, Font.YGLYPH + 2, 0x7f404040, 0x7f000000); + Drawing.drawGradient(x, y, 300, Font.YGLYPH + 2, 0x7f404040, 0x7f101010, 0x7f5f5f5f, 0x7f000000); Drawing.drawText(elem.getKey(), x + 4, y + 1, 0xffffffff); - Drawing.drawTextRight(formatPing(elem.getValue()), x + 300 - 4, y + 1, 0xffffffff); + drawPing(x + 300 - 4, y + 1, elem.getValue()); if(++bx >= w) { bx = 0; ++by; diff --git a/client/src/main/java/client/renderer/Drawing.java b/client/src/main/java/client/renderer/Drawing.java index 40128ca6..150d9ab9 100644 --- a/client/src/main/java/client/renderer/Drawing.java +++ b/client/src/main/java/client/renderer/Drawing.java @@ -488,7 +488,7 @@ public abstract class Drawing { int corner = Util.mixColor(topleft, btmright); drawRect(x, y, w - 1, 1, topleft); drawRect(x, y + 1, 1, h - 1, topleft); - drawRect(x + w - 1, y + 1, 1, 1, corner); + drawRect(x + w - 1, y, 1, 1, corner); drawRect(x, y + h - 1, 1, 1, corner); drawRect(x + w - 1, y + 1, 1, h - 1, btmright); drawRect(x + 1, y + h - 1, w - 2, 1, btmright); @@ -499,7 +499,7 @@ public abstract class Drawing { int corner = Util.mixColor(topleft, btmright); drawRect(x, y, w - 1, 1, topleft); drawRect(x, y + 1, 1, h - 1, topleft); - drawRect(x + w - 1, y + 1, 1, 1, corner); + drawRect(x + w - 1, y, 1, 1, corner); drawRect(x, y + h - 1, 1, 1, corner); drawRect(x + w - 1, y + 1, 1, h - 1, btmright); drawRect(x + 1, y + h - 1, w - 2, 1, btmright);