40 lines
1.4 KiB
Java
40 lines
1.4 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.Font;
|
|
import net.minecraft.client.gui.GuiGraphics;
|
|
import net.minecraft.client.renderer.MultiBufferSource.BufferSource;
|
|
import net.minecraft.util.FormattedCharSequence;
|
|
import net.minecraft.world.inventory.tooltip.BundleTooltip;
|
|
import net.minecraft.world.inventory.tooltip.TooltipComponent;
|
|
import org.joml.Matrix4f;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public interface ClientTooltipComponent {
|
|
static ClientTooltipComponent create(FormattedCharSequence text) {
|
|
return new ClientTextTooltip(text);
|
|
}
|
|
|
|
static ClientTooltipComponent create(TooltipComponent visualTooltipComponent) {
|
|
return (ClientTooltipComponent)(switch (visualTooltipComponent) {
|
|
case BundleTooltip bundleTooltip -> new ClientBundleTooltip(bundleTooltip.contents());
|
|
case ClientActivePlayersTooltip.ActivePlayersTooltip activePlayersTooltip -> new ClientActivePlayersTooltip(activePlayersTooltip);
|
|
default -> throw new IllegalArgumentException("Unknown TooltipComponent");
|
|
});
|
|
}
|
|
|
|
int getHeight(Font font);
|
|
|
|
int getWidth(Font font);
|
|
|
|
default boolean showTooltipWithItemInHand() {
|
|
return false;
|
|
}
|
|
|
|
default void renderText(Font font, int mouseX, int mouseY, Matrix4f matrix, BufferSource bufferSource) {
|
|
}
|
|
|
|
default void renderImage(Font font, int x, int y, int width, int height, GuiGraphics guiGraphics) {
|
|
}
|
|
}
|