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;
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
t++;
|
||||
if (t >= 20){
|
||||
t = 0;
|
||||
|
||||
@@ -15,6 +15,8 @@ import java.util.List;
|
||||
|
||||
public abstract class BasicTextWidget extends ModWidget {
|
||||
protected Text renderText = Text.empty();
|
||||
private int textWidthH;
|
||||
private TextRenderer renderer = null;
|
||||
|
||||
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
|
||||
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
|
||||
@@ -46,10 +48,21 @@ public abstract class BasicTextWidget extends ModWidget {
|
||||
|
||||
@Override
|
||||
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.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
|
||||
public void onSettingsChanged(WidgetSettings settings) {
|
||||
this.backgroundColor = ((RGBAColorWidgetSetting) settings.optionById("backgroundcolor")).getColor();
|
||||
|
||||
@@ -70,7 +70,7 @@ public class CPSWidget extends BasicTextWidget {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
int left = 0;
|
||||
int right = 0;
|
||||
int middle = 0;
|
||||
|
||||
@@ -100,7 +100,7 @@ public class ClockWidget extends BasicTextWidget {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
renderText = Text.literal(dateFormat.format(Date.from(Instant.now())));
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ public class FPSWidget extends BasicTextWidget {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
this.renderText = Text.literal(MinecraftClient.getInstance().getCurrentFps() + " FPS");
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public class PingWidget extends BasicTextWidget {
|
||||
private boolean dynamicColor = false;
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
||||
if (networkHandler != null){
|
||||
if (lastPingQuery < Util.getMeasuringTimeMs() - 5000){
|
||||
|
||||
@@ -13,7 +13,7 @@ public class PlayerCountWidget extends BasicTextWidget{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
final ClientPlayNetworkHandler networkHandler = MinecraftClient.getInstance().getNetworkHandler();
|
||||
String online = networkHandler == null ? "?" : String.valueOf(networkHandler.getPlayerUuids().size());
|
||||
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;
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tickWidget() {
|
||||
final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry();
|
||||
if (serverEntry != null){
|
||||
this.renderText = Text.of(serverEntry.address);
|
||||
|
||||
Reference in New Issue
Block a user