76 lines
1.5 KiB
Java
76 lines
1.5 KiB
Java
package net.minecraft.client.renderer;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class Rect2i {
|
|
private int xPos;
|
|
private int yPos;
|
|
private int width;
|
|
private int height;
|
|
|
|
public Rect2i(int xPos, int yPos, int width, int height) {
|
|
this.xPos = xPos;
|
|
this.yPos = yPos;
|
|
this.width = width;
|
|
this.height = height;
|
|
}
|
|
|
|
public Rect2i intersect(Rect2i other) {
|
|
int i = this.xPos;
|
|
int j = this.yPos;
|
|
int k = this.xPos + this.width;
|
|
int l = this.yPos + this.height;
|
|
int m = other.getX();
|
|
int n = other.getY();
|
|
int o = m + other.getWidth();
|
|
int p = n + other.getHeight();
|
|
this.xPos = Math.max(i, m);
|
|
this.yPos = Math.max(j, n);
|
|
this.width = Math.max(0, Math.min(k, o) - this.xPos);
|
|
this.height = Math.max(0, Math.min(l, p) - this.yPos);
|
|
return this;
|
|
}
|
|
|
|
public int getX() {
|
|
return this.xPos;
|
|
}
|
|
|
|
public int getY() {
|
|
return this.yPos;
|
|
}
|
|
|
|
public void setX(int xPos) {
|
|
this.xPos = xPos;
|
|
}
|
|
|
|
public void setY(int yPos) {
|
|
this.yPos = yPos;
|
|
}
|
|
|
|
public int getWidth() {
|
|
return this.width;
|
|
}
|
|
|
|
public int getHeight() {
|
|
return this.height;
|
|
}
|
|
|
|
public void setWidth(int width) {
|
|
this.width = width;
|
|
}
|
|
|
|
public void setHeight(int height) {
|
|
this.height = height;
|
|
}
|
|
|
|
public void setPosition(int xPos, int yPos) {
|
|
this.xPos = xPos;
|
|
this.yPos = yPos;
|
|
}
|
|
|
|
public boolean contains(int x, int y) {
|
|
return x >= this.xPos && x <= this.xPos + this.width && y >= this.yPos && y <= this.yPos + this.height;
|
|
}
|
|
}
|