91 lines
2.6 KiB
Java
91 lines
2.6 KiB
Java
package net.minecraft.client.gui.layouts;
|
|
|
|
import net.minecraft.util.Mth;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
public abstract class AbstractLayout implements Layout {
|
|
private int x;
|
|
private int y;
|
|
protected int width;
|
|
protected int height;
|
|
|
|
public AbstractLayout(int p_265185_, int p_265789_, int p_265792_, int p_265443_) {
|
|
this.x = p_265185_;
|
|
this.y = p_265789_;
|
|
this.width = p_265792_;
|
|
this.height = p_265443_;
|
|
}
|
|
|
|
@Override
|
|
public void setX(int p_265701_) {
|
|
this.visitChildren(p_265043_ -> {
|
|
int i = p_265043_.getX() + (p_265701_ - this.getX());
|
|
p_265043_.setX(i);
|
|
});
|
|
this.x = p_265701_;
|
|
}
|
|
|
|
@Override
|
|
public void setY(int p_265155_) {
|
|
this.visitChildren(p_265586_ -> {
|
|
int i = p_265586_.getY() + (p_265155_ - this.getY());
|
|
p_265586_.setY(i);
|
|
});
|
|
this.y = p_265155_;
|
|
}
|
|
|
|
@Override
|
|
public int getX() {
|
|
return this.x;
|
|
}
|
|
|
|
@Override
|
|
public int getY() {
|
|
return this.y;
|
|
}
|
|
|
|
@Override
|
|
public int getWidth() {
|
|
return this.width;
|
|
}
|
|
|
|
@Override
|
|
public int getHeight() {
|
|
return this.height;
|
|
}
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
protected abstract static class AbstractChildWrapper {
|
|
public final LayoutElement child;
|
|
public final LayoutSettings.LayoutSettingsImpl layoutSettings;
|
|
|
|
protected AbstractChildWrapper(LayoutElement p_265145_, LayoutSettings p_265309_) {
|
|
this.child = p_265145_;
|
|
this.layoutSettings = p_265309_.getExposed();
|
|
}
|
|
|
|
public int getHeight() {
|
|
return this.child.getHeight() + this.layoutSettings.paddingTop + this.layoutSettings.paddingBottom;
|
|
}
|
|
|
|
public int getWidth() {
|
|
return this.child.getWidth() + this.layoutSettings.paddingLeft + this.layoutSettings.paddingRight;
|
|
}
|
|
|
|
public void setX(int p_265766_, int p_265689_) {
|
|
float f = this.layoutSettings.paddingLeft;
|
|
float f1 = p_265689_ - this.child.getWidth() - this.layoutSettings.paddingRight;
|
|
int i = (int)Mth.lerp(this.layoutSettings.xAlignment, f, f1);
|
|
this.child.setX(i + p_265766_);
|
|
}
|
|
|
|
public void setY(int p_265384_, int p_265375_) {
|
|
float f = this.layoutSettings.paddingTop;
|
|
float f1 = p_265375_ - this.child.getHeight() - this.layoutSettings.paddingBottom;
|
|
int i = Math.round(Mth.lerp(this.layoutSettings.yAlignment, f, f1));
|
|
this.child.setY(i + p_265384_);
|
|
}
|
|
}
|
|
} |