Code/net/minecraft/client/gui/screens/DemoIntroScreen.java

68 lines
3.4 KiB
Java

package net.minecraft.client.gui.screens;
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;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.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"), p_340798_ -> {
p_340798_.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"), p_280798_ -> {
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 p_283391_, int p_299907_, int p_301194_, float p_297228_) {
super.renderBackground(p_283391_, p_299907_, p_301194_, p_297228_);
int i = (this.width - 248) / 2;
int j = (this.height - 166) / 2;
p_283391_.blit(RenderType::guiTextured, DEMO_BACKGROUND_LOCATION, i, j, 0.0F, 0.0F, 248, 166, 256, 256);
}
@Override
public void render(GuiGraphics p_281247_, int p_281844_, int p_283693_, float p_281842_) {
super.render(p_281247_, p_281844_, p_283693_, p_281842_);
int i = (this.width - 248) / 2 + 10;
int j = (this.height - 166) / 2 + 8;
p_281247_.drawString(this.font, this.title, i, j, 2039583, false);
j = this.movementMessage.renderLeftAlignedNoShadow(p_281247_, i, j + 12, 12, 5197647);
this.durationMessage.renderLeftAlignedNoShadow(p_281247_, i, j + 20, 9, 2039583);
}
}