DefaultTooltipPositioner.java

net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner

信息

  • 全限定名:net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner
  • 类型:public class
  • 包:net.minecraft.client.gui.screens.inventory.tooltip
  • 源码路径:src/main/java/net/minecraft/client/gui/screens/inventory/tooltip/DefaultTooltipPositioner.java
  • 起始行号:L9
  • 实现:ClientTooltipPositioner
  • 职责:

    TODO

字段/常量

  • INSTANCE
    • 类型: ClientTooltipPositioner
    • 修饰符: public static final
    • 源码定位: L10
    • 说明:

      TODO

内部类/嵌套类型

构造器

private DefaultTooltipPositioner() @ L12

  • 构造器名:DefaultTooltipPositioner
  • 源码定位:L12
  • 修饰符:private

参数:

说明:

TODO

方法

下面的方法块按源码顺序生成。

public Vector2ic positionTooltip(int screenWidth, int screenHeight, int x, int y, int tooltipWidth, int tooltipHeight) @ L15

  • 方法名:positionTooltip
  • 源码定位:L15
  • 返回类型:Vector2ic
  • 修饰符:public

参数:

  • screenWidth: int
  • screenHeight: int
  • x: int
  • y: int
  • tooltipWidth: int
  • tooltipHeight: int

说明:

TODO

private void positionTooltip(int screenWidth, int screenHeight, Vector2i result, int tooltipWidth, int tooltipHeight) @ L22

  • 方法名:positionTooltip
  • 源码定位:L22
  • 返回类型:void
  • 修饰符:private

参数:

  • screenWidth: int
  • screenHeight: int
  • result: Vector2i
  • tooltipWidth: int
  • tooltipHeight: int

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DefaultTooltipPositioner implements ClientTooltipPositioner {
    public static final ClientTooltipPositioner INSTANCE = new DefaultTooltipPositioner();
 
    private DefaultTooltipPositioner() {
    }
 
    @Override
    public Vector2ic positionTooltip(int screenWidth, int screenHeight, int x, int y, int tooltipWidth, int tooltipHeight) {
        Vector2i result = new Vector2i(x, y).add(12, -12);
        this.positionTooltip(screenWidth, screenHeight, result, tooltipWidth, tooltipHeight);
        return result;
    }
 
    private void positionTooltip(int screenWidth, int screenHeight, Vector2i result, int tooltipWidth, int tooltipHeight) {
        if (result.x + tooltipWidth > screenWidth) {
            result.x = Math.max(result.x - 24 - tooltipWidth, 4);
        }
 
        int paddedHeight = tooltipHeight + 3;
        if (result.y + paddedHeight > screenHeight) {
            result.y = screenHeight - paddedHeight;
        }
    }
}

引用的其他类