1
mirror of https://github.com/Shiewk/Widgets.git synced 2026-04-28 11:34:17 +02:00

Rework widget positioning

This commit is contained in:
Shy
2025-11-20 19:33:12 +01:00
parent 4b27e15e0c
commit ceb507078c
8 changed files with 279 additions and 164 deletions
+20 -8
View File
@@ -1,6 +1,5 @@
package de.shiewk.widgets;
import de.shiewk.widgets.utils.WidgetUtils;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.text.Text;
@@ -9,7 +8,7 @@ import net.minecraft.util.Identifier;
import java.util.List;
import java.util.Objects;
public abstract class ModWidget implements Dimensionable {
public abstract class ModWidget {
private final Identifier id;
private final WidgetSettings settings;
@@ -37,14 +36,27 @@ public abstract class ModWidget implements Dimensionable {
public abstract Text getDescription();
public abstract void onSettingsChanged(WidgetSettings settings);
@Override
public double getX(int mx) {
return (int) WidgetUtils.translateToScreen(settings.posX, mx);
public int getX(int scaledScreenWidth){
return settings.anchor.getAlignStartPosX(scaledScreenWidth) + settings.offsetX;
}
@Override
public double getY(int my) {
return (int) WidgetUtils.translateToScreen(settings.posY, my);
public int getY(int scaledScreenHeight){
return settings.anchor.getAlignStartPosY(scaledScreenHeight) + settings.offsetY;
}
public abstract int width();
public abstract int height();
public float scaledWidth() {
return width() * getScaleFactor();
}
public float scaledHeight() {
return height() * getScaleFactor();
}
public void move(int dx, int dy) {
settings.offsetX += dx;
settings.offsetY += dy;
}
}