32 lines
1.1 KiB
Java
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 org.joml.Vector2i;
|
|
import org.joml.Vector2ic;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class DefaultTooltipPositioner implements ClientTooltipPositioner {
|
|
public static final ClientTooltipPositioner INSTANCE = new DefaultTooltipPositioner();
|
|
|
|
private DefaultTooltipPositioner() {
|
|
}
|
|
|
|
@Override
|
|
public Vector2ic positionTooltip(int screenWidth, int screenHeight, int mouseX, int mouseY, int tooltipWidth, int tooltipHeight) {
|
|
Vector2i vector2i = new Vector2i(mouseX, mouseY).add(12, -12);
|
|
this.positionTooltip(screenWidth, screenHeight, vector2i, tooltipWidth, tooltipHeight);
|
|
return vector2i;
|
|
}
|
|
|
|
private void positionTooltip(int screenWidth, int screenHeight, Vector2i tooltipPos, int tooltipWidth, int tooltipHeight) {
|
|
if (tooltipPos.x + tooltipWidth > screenWidth) {
|
|
tooltipPos.x = Math.max(tooltipPos.x - 24 - tooltipWidth, 4);
|
|
}
|
|
|
|
int i = tooltipHeight + 3;
|
|
if (tooltipPos.y + i > screenHeight) {
|
|
tooltipPos.y = screenHeight - i;
|
|
}
|
|
}
|
|
}
|