minecraft-src/net/minecraft/client/gui/screens/inventory/tooltip/BelowOrAboveWidgetTooltipPositioner.java
2025-07-04 01:41:11 +03:00

32 lines
1.1 KiB
Java

package net.minecraft.client.gui.screens.inventory.tooltip;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.navigation.ScreenRectangle;
import org.joml.Vector2i;
import org.joml.Vector2ic;
@Environment(EnvType.CLIENT)
public class BelowOrAboveWidgetTooltipPositioner implements ClientTooltipPositioner {
private final ScreenRectangle screenRectangle;
public BelowOrAboveWidgetTooltipPositioner(ScreenRectangle screenRectangle) {
this.screenRectangle = screenRectangle;
}
@Override
public Vector2ic positionTooltip(int screenWidth, int screenHeight, int mouseX, int mouseY, int tooltipWidth, int tooltipHeight) {
Vector2i vector2i = new Vector2i();
vector2i.x = this.screenRectangle.left() + 3;
vector2i.y = this.screenRectangle.bottom() + 3 + 1;
if (vector2i.y + tooltipHeight + 3 > screenHeight) {
vector2i.y = this.screenRectangle.top() - tooltipHeight - 3 - 1;
}
if (vector2i.x + tooltipWidth > screenWidth) {
vector2i.x = Math.max(this.screenRectangle.right() - tooltipWidth - 3, 4);
}
return vector2i;
}
}