minecraft-src/net/minecraft/client/gui/screens/DemoIntroScreen.java
2025-07-04 02:00:41 +03:00

72 lines
3.1 KiB
Java

package net.minecraft.client.gui.screens;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.Util;
import net.minecraft.client.Options;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.MultiLineLabel;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.CommonLinks;
@Environment(EnvType.CLIENT)
public class DemoIntroScreen extends Screen {
private static final ResourceLocation DEMO_BACKGROUND_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/demo_background.png");
private static final int BACKGROUND_TEXTURE_WIDTH = 256;
private static final int BACKGROUND_TEXTURE_HEIGHT = 256;
private MultiLineLabel movementMessage = MultiLineLabel.EMPTY;
private MultiLineLabel durationMessage = MultiLineLabel.EMPTY;
public DemoIntroScreen() {
super(Component.translatable("demo.help.title"));
}
@Override
protected void init() {
int i = -16;
this.addRenderableWidget(Button.builder(Component.translatable("demo.help.buy"), button -> {
button.active = false;
Util.getPlatform().openUri(CommonLinks.BUY_MINECRAFT_JAVA);
}).bounds(this.width / 2 - 116, this.height / 2 + 62 + -16, 114, 20).build());
this.addRenderableWidget(Button.builder(Component.translatable("demo.help.later"), button -> {
this.minecraft.setScreen(null);
this.minecraft.mouseHandler.grabMouse();
}).bounds(this.width / 2 + 2, this.height / 2 + 62 + -16, 114, 20).build());
Options options = this.minecraft.options;
this.movementMessage = MultiLineLabel.create(
this.font,
Component.translatable(
"demo.help.movementShort",
options.keyUp.getTranslatedKeyMessage(),
options.keyLeft.getTranslatedKeyMessage(),
options.keyDown.getTranslatedKeyMessage(),
options.keyRight.getTranslatedKeyMessage()
),
Component.translatable("demo.help.movementMouse"),
Component.translatable("demo.help.jump", options.keyJump.getTranslatedKeyMessage()),
Component.translatable("demo.help.inventory", options.keyInventory.getTranslatedKeyMessage())
);
this.durationMessage = MultiLineLabel.create(this.font, Component.translatable("demo.help.fullWrapped"), 218);
}
@Override
public void renderBackground(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
super.renderBackground(guiGraphics, mouseX, mouseY, partialTick);
int i = (this.width - 248) / 2;
int j = (this.height - 166) / 2;
guiGraphics.blit(RenderType::guiTextured, DEMO_BACKGROUND_LOCATION, i, j, 0.0F, 0.0F, 248, 166, 256, 256);
}
@Override
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
super.render(guiGraphics, mouseX, mouseY, partialTick);
int i = (this.width - 248) / 2 + 10;
int j = (this.height - 166) / 2 + 8;
guiGraphics.drawString(this.font, this.title, i, j, 2039583, false);
j = this.movementMessage.renderLeftAlignedNoShadow(guiGraphics, i, j + 12, 12, 5197647);
this.durationMessage.renderLeftAlignedNoShadow(guiGraphics, i, j + 20, 9, 2039583);
}
}