minecraft-src/net/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipComponent.java
2025-07-04 02:49:36 +03:00

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) {
}
}