mirror of
https://github.com/Shiewk/Widgets.git
synced 2026-04-28 11:34:17 +02:00
(slightly) improve BasicTextWidget performance
This commit is contained in:
@@ -20,7 +20,7 @@ public class BandwidthWidget extends BasicTextWidget {
|
|||||||
private boolean dynamicColor = false;
|
private boolean dynamicColor = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
t++;
|
t++;
|
||||||
if (t >= 20){
|
if (t >= 20){
|
||||||
t = 0;
|
t = 0;
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public abstract class BasicTextWidget extends ModWidget {
|
public abstract class BasicTextWidget extends ModWidget {
|
||||||
protected Text renderText = Text.empty();
|
protected Text renderText = Text.empty();
|
||||||
|
private int textWidthH;
|
||||||
|
private TextRenderer renderer = null;
|
||||||
|
|
||||||
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
|
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
|
||||||
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
|
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
|
||||||
@@ -46,10 +48,21 @@ public abstract class BasicTextWidget extends ModWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(DrawContext context, long n, TextRenderer textRenderer, int posX, int posY) {
|
public void render(DrawContext context, long n, TextRenderer textRenderer, int posX, int posY) {
|
||||||
|
renderer = textRenderer;
|
||||||
context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
|
context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
|
||||||
context.drawCenteredTextWithShadow(textRenderer, renderText, posX + (width() / 2), posY + 6, this.textColor);
|
context.drawText(textRenderer, renderText, posX + (width() / 2) - textWidthH, posY + 6, this.textColor, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void tick() {
|
||||||
|
tickWidget();
|
||||||
|
if (renderer != null){
|
||||||
|
this.textWidthH = renderer.getWidth(renderText) / 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void tickWidget();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSettingsChanged(WidgetSettings settings) {
|
public void onSettingsChanged(WidgetSettings settings) {
|
||||||
this.backgroundColor = ((RGBAColorWidgetSetting) settings.optionById("backgroundcolor")).getColor();
|
this.backgroundColor = ((RGBAColorWidgetSetting) settings.optionById("backgroundcolor")).getColor();
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class CPSWidget extends BasicTextWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
int left = 0;
|
int left = 0;
|
||||||
int right = 0;
|
int right = 0;
|
||||||
int middle = 0;
|
int middle = 0;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class ClockWidget extends BasicTextWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
renderText = Text.literal(dateFormat.format(Date.from(Instant.now())));
|
renderText = Text.literal(dateFormat.format(Date.from(Instant.now())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class FPSWidget extends BasicTextWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
this.renderText = Text.literal(MinecraftClient.getInstance().getCurrentFps() + " FPS");
|
this.renderText = Text.literal(MinecraftClient.getInstance().getCurrentFps() + " FPS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class PingWidget extends BasicTextWidget {
|
|||||||
private boolean dynamicColor = false;
|
private boolean dynamicColor = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
||||||
if (networkHandler != null){
|
if (networkHandler != null){
|
||||||
if (lastPingQuery < Util.getMeasuringTimeMs() - 5000){
|
if (lastPingQuery < Util.getMeasuringTimeMs() - 5000){
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class PlayerCountWidget extends BasicTextWidget{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
||||||
String online = networkHandler == null ? "?" : String.valueOf(networkHandler.getPlayerUuids().size());
|
String online = networkHandler == null ? "?" : String.valueOf(networkHandler.getPlayerUuids().size());
|
||||||
this.renderText = Text.literal(Text.translatable("widgets.widgets.playerCount.online", online).getString());
|
this.renderText = Text.literal(Text.translatable("widgets.widgets.playerCount.online", online).getString());
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class ServerIPWidget extends BasicTextWidget {
|
|||||||
private int t = 0;
|
private int t = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tickWidget() {
|
||||||
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
|
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
|
||||||
if (serverEntry != null){
|
if (serverEntry != null){
|
||||||
this.renderText = Text.of(serverEntry.address);
|
this.renderText = Text.of(serverEntry.address);
|
||||||
|
|||||||
Reference in New Issue
Block a user