minecraft-src/net/minecraft/client/gui/layouts/LayoutSettings.java
2025-07-04 03:15:13 +03:00

150 lines
3.7 KiB
Java

package net.minecraft.client.gui.layouts;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@Environment(EnvType.CLIENT)
public interface LayoutSettings {
LayoutSettings padding(int padding);
LayoutSettings padding(int horizontalPadding, int verticalPadding);
LayoutSettings padding(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom);
LayoutSettings paddingLeft(int paddingLeft);
LayoutSettings paddingTop(int paddingTop);
LayoutSettings paddingRight(int paddingRight);
LayoutSettings paddingBottom(int paddingBottom);
LayoutSettings paddingHorizontal(int horizontalPadding);
LayoutSettings paddingVertical(int verticalPadding);
LayoutSettings align(float xAlignment, float yAlignment);
LayoutSettings alignHorizontally(float xAlignment);
LayoutSettings alignVertically(float yAlignment);
default LayoutSettings alignHorizontallyLeft() {
return this.alignHorizontally(0.0F);
}
default LayoutSettings alignHorizontallyCenter() {
return this.alignHorizontally(0.5F);
}
default LayoutSettings alignHorizontallyRight() {
return this.alignHorizontally(1.0F);
}
default LayoutSettings alignVerticallyTop() {
return this.alignVertically(0.0F);
}
default LayoutSettings alignVerticallyMiddle() {
return this.alignVertically(0.5F);
}
default LayoutSettings alignVerticallyBottom() {
return this.alignVertically(1.0F);
}
LayoutSettings copy();
LayoutSettings.LayoutSettingsImpl getExposed();
static LayoutSettings defaults() {
return new LayoutSettings.LayoutSettingsImpl();
}
@Environment(EnvType.CLIENT)
public static class LayoutSettingsImpl implements LayoutSettings {
public int paddingLeft;
public int paddingTop;
public int paddingRight;
public int paddingBottom;
public float xAlignment;
public float yAlignment;
public LayoutSettingsImpl() {
}
public LayoutSettingsImpl(LayoutSettings.LayoutSettingsImpl other) {
this.paddingLeft = other.paddingLeft;
this.paddingTop = other.paddingTop;
this.paddingRight = other.paddingRight;
this.paddingBottom = other.paddingBottom;
this.xAlignment = other.xAlignment;
this.yAlignment = other.yAlignment;
}
public LayoutSettings.LayoutSettingsImpl padding(int i) {
return this.padding(i, i);
}
public LayoutSettings.LayoutSettingsImpl padding(int i, int j) {
return this.paddingHorizontal(i).paddingVertical(j);
}
public LayoutSettings.LayoutSettingsImpl padding(int i, int j, int k, int l) {
return this.paddingLeft(i).paddingRight(k).paddingTop(j).paddingBottom(l);
}
public LayoutSettings.LayoutSettingsImpl paddingLeft(int i) {
this.paddingLeft = i;
return this;
}
public LayoutSettings.LayoutSettingsImpl paddingTop(int i) {
this.paddingTop = i;
return this;
}
public LayoutSettings.LayoutSettingsImpl paddingRight(int i) {
this.paddingRight = i;
return this;
}
public LayoutSettings.LayoutSettingsImpl paddingBottom(int i) {
this.paddingBottom = i;
return this;
}
public LayoutSettings.LayoutSettingsImpl paddingHorizontal(int i) {
return this.paddingLeft(i).paddingRight(i);
}
public LayoutSettings.LayoutSettingsImpl paddingVertical(int i) {
return this.paddingTop(i).paddingBottom(i);
}
public LayoutSettings.LayoutSettingsImpl align(float f, float g) {
this.xAlignment = f;
this.yAlignment = g;
return this;
}
public LayoutSettings.LayoutSettingsImpl alignHorizontally(float f) {
this.xAlignment = f;
return this;
}
public LayoutSettings.LayoutSettingsImpl alignVertically(float f) {
this.yAlignment = f;
return this;
}
public LayoutSettings.LayoutSettingsImpl copy() {
return new LayoutSettings.LayoutSettingsImpl(this);
}
@Override
public LayoutSettings.LayoutSettingsImpl getExposed() {
return this;
}
}
}