aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker
diff options
context:
space:
mode:
authormsg-programs <msgdoesstuff@gmail.com>2023-05-13 00:05:27 +0200
committermsg-programs <msgdoesstuff@gmail.com>2023-05-13 00:05:27 +0200
commit2c8cfe48f26424175d169d8328e0b4294b108c8c (patch)
treeffd8ce393eb668762a8a21411bb076fcb17f365a /src/main/java/me/xmrvizzy/skyblocker
parentfbfd885064e2b7677a0b26f1d7c9dc24788b8e7f (diff)
downloadSkyblocker-2c8cfe48f26424175d169d8328e0b4294b108c8c.tar.gz
Skyblocker-2c8cfe48f26424175d169d8328e0b4294b108c8c.tar.bz2
Skyblocker-2c8cfe48f26424175d169d8328e0b4294b108c8c.zip
Rework component paddings, see below
Components now consistently don't include any padding to the left and downwards. This "external" padding is used by widgets and the TableComponent to position their (sub-)components, so they should apply it themselves. This finally fixes the player list widget's drifting seperators and not-wide-enough cols.
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java8
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java5
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java32
8 files changed, 33 insertions, 26 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java
index 9e3c87cf..01f47933 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/Widget.java
@@ -40,9 +40,11 @@ public abstract class Widget {
public final void pack() {
for (Component c : components) {
- h += c.getHeight() + 4;
- w = Math.max(w, c.getWidth());
+ h += c.getHeight() + Component.PAD_L;
+ w = Math.max(w, c.getWidth() + Component.PAD_S);
}
+
+ h -= Component.PAD_L / 2; // less padding after lowest/last component
h += BORDER_SZE_N + BORDER_SZE_S - 2;
w += BORDER_SZE_E + BORDER_SZE_W;
@@ -114,7 +116,7 @@ public abstract class Widget {
for (Component c : components) {
c.render(ms, x + BORDER_SZE_W, yOffs);
- yOffs += c.getHeight() + 4;
+ yOffs += c.getHeight() + Component.PAD_L;
}
// pop manipulations above
ms.pop();
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java
index 92b7ed1b..d9d84bc4 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/Component.java
@@ -8,12 +8,13 @@ import net.minecraft.client.util.math.MatrixStack;
public abstract class Component {
static final int ICO_DIM = 16;
- static final int PAD_S = 2;
- static final int PAD_L = 4;
+ public static final int PAD_S = 2;
+ public static final int PAD_L = 4;
static TextRenderer txtRend = MinecraftClient.getInstance().textRenderer;
static ItemRenderer itmRend = MinecraftClient.getInstance().getItemRenderer();
+ // these should always be the content dimensions without any padding.
int width, height;
public abstract void render(MatrixStack ms, int x, int y);
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java
index 9aec581b..6a780159 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoFatTextComponent.java
@@ -18,8 +18,8 @@ public class IcoFatTextComponent extends Component {
this.l1 = l1;
this.l2 = l2;
- this.width = ICO_DIM + PAD_L + Math.max(txtRend.getWidth(l1), txtRend.getWidth(l2)) + PAD_S;
- this.height = txtRend.fontHeight * 2 + PAD_S;
+ this.width = ICO_DIM + PAD_L + Math.max(txtRend.getWidth(l1), txtRend.getWidth(l2));
+ this.height = txtRend.fontHeight + PAD_S + txtRend.fontHeight;
}
@Override
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java
index defbb2e6..b54affbc 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/IcoTextComponent.java
@@ -15,7 +15,7 @@ public class IcoTextComponent extends Component {
this.ico = ico;
this.text = text;
- this.width = ICO_DIM + PAD_L + txtRend.getWidth(text) + PAD_S;
+ this.width = ICO_DIM + PAD_L + txtRend.getWidth(text);
this.height = ICO_DIM;
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java
index 8976e6a2..a2ffced9 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlainTextComponent.java
@@ -12,13 +12,13 @@ public class PlainTextComponent extends Component {
public PlainTextComponent(Text text) {
this.text = text;
- this.width = PAD_S + txtRend.getWidth(text) + PAD_S;
+ this.width = PAD_S + txtRend.getWidth(text); // looks off without padding
this.height = txtRend.fontHeight;
}
@Override
public void render(MatrixStack ms, int x, int y) {
- txtRend.draw(ms, text, x + PAD_S, y, 0xffffffff);
+ txtRend.draw(ms, text, x, y, 0xffffffff);
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
index 56e2b3c3..ff296f28 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
@@ -21,7 +21,7 @@ public class PlayerComponent extends Component {
name = ple.getProfile().getName();
tex = ple.getSkinTexture();
- this.width = txtRend.getWidth(name) + PAD_S + SKIN_ICO_DIM;
+ this.width = SKIN_ICO_DIM + PAD_S + txtRend.getWidth(name) ;
this.height = txtRend.fontHeight;
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java
index 1803e327..753c9b21 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/ProgressComponent.java
@@ -30,8 +30,8 @@ public class ProgressComponent extends Component {
this.pcnt = pcnt;
this.barW = BAR_WIDTH;
+ this.width = ICO_DIM + PAD_L + Math.max(this.barW, txtRend.getWidth(desc));
this.height = txtRend.fontHeight + PAD_S + 2 + txtRend.fontHeight + 2;
- this.width = ICO_DIM + PAD_L + Math.max(this.barW, txtRend.getWidth(desc)) + PAD_S;
}
public ProgressComponent(ItemStack ico, Text text, float pcnt, int color) {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java
index eeb8ce3b..5d27380e 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/TableComponent.java
@@ -12,43 +12,47 @@ public class TableComponent extends Component {
private Component[][] comps;
private int color;
- private int tw, th;
+ private int cols, rows;
private int cellW, cellH;
public TableComponent(int w, int h, int col) {
comps = new Component[w][h];
color = 0xff000000 | col;
- tw = w;
- th = h;
+ cols = w;
+ rows = h;
}
public void addToCell(int x, int y, Component c) {
this.comps[x][y] = c;
- // are tables still too wide?
- this.cellW = Math.max(this.cellW, c.width + PAD_S);
+ // pad extra to add a vertical line later
+ this.cellW = Math.max(this.cellW, c.width + PAD_S + PAD_L);
// assume all rows are equally high so overwriting doesn't matter
// if this wasn't the case, drawing would need more math
// not doing any of that if it's not needed
- this.cellH = c.height;
+ this.cellH = c.height + PAD_S;
- this.width = this.cellW * this.tw;
- this.height = (this.cellH + PAD_S) * this.th - PAD_S;
+ this.width = this.cellW * this.cols;
+ this.height = (this.cellH * this.rows) - PAD_S / 2;
}
@Override
public void render(MatrixStack ms, int xpos, int ypos) {
- for (int x = 0; x < tw; x++) {
- for (int y = 0; y < th; y++) {
+ for (int x = 0; x < cols; x++) {
+ for (int y = 0; y < rows; y++) {
if (comps[x][y] != null) {
- comps[x][y].render(ms, xpos + x * cellW + x * PAD_L, ypos + y * cellH + y * PAD_S);
+ comps[x][y].render(ms, xpos + (x * cellW), ypos + y * cellH);
}
}
- if (x != tw - 1) {
- DrawableHelper.fill(ms, xpos + ((x + 1) * (cellW + PAD_S)) - 1, ypos + 1,
- xpos + ((x + 1) * (cellW + PAD_S)), ypos + this.height - 1, this.color);
+ // add a line before the col if we're not drawing the first one
+ if (x != 0) {
+ int lineX1 = xpos + (x * cellW) - PAD_S - 1;
+ int lineX2 = xpos + (x * cellW) - PAD_S;
+ int lineY1 = ypos + 1;
+ int lineY2 = ypos + this.height - PAD_S - 1; // not sure why but it looks correct
+ DrawableHelper.fill(ms, lineX1, lineY1, lineX2, lineY2, this.color);
}
}
}