#Why my screen doesn't render?

3 messages · Page 1 of 1 (latest)

next ferry
#
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("meitnerium")
                .executes(context -> {
                            MinecraftClient.getInstance().setScreen(new MenuScreen());
                            context.getSource().sendFeedback(Text.literal("uhh"));
                            return 1;
                        }
                )));

MenuScreen:

public class MenuScreen extends Screen {

    private final List<ButtonWidget> buttons = Lists.<ButtonWidget>newArrayList();
    @Nullable
    private ButtonWidget titleScreenButton;

    protected MenuScreen() {
        super(Text.of("Meitnerium | beta"));
    }

    @Override
    protected void init(){
        var btn = new ButtonWidget.Builder(Text.of("idk"), buttonWidget -> {

        }).dimensions(100, 100, 100, 100).build();

        this.buttons.add(btn);
        this.addDrawableChild(btn);

        System.out.println("rompompom");
    }

    @Override
    public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) {
        fillBackgroundGradient(context, this.width, this.height);
    }

    static void fillBackgroundGradient(DrawContext context, int width, int height) {
        context.fillGradient(0, 0, width, height, 1615855616, -1602211792);
    }

    @Override
    public void render(DrawContext context, int mouseX, int mouseY, float delta) {
        System.out.println("RENDER");
        super.render(context, mouseX, mouseY, delta);
    }

    @Override
    public boolean shouldPause() {
        return false;
    }
}

In logs i can see that my screen only inits

[14:50:06] [Render thread/INFO] (Minecraft) Loaded 60 advancements
[14:50:10] [Render thread/INFO] (Minecraft) [STDOUT]: rompompom
[14:50:10] [Render thread/INFO] (Minecraft) [System] [CHAT] uhh
neat canyon
#

Chat is a screen, you can't open a screen while already having one open
allegedly, use the method MinecraftClient#send to delay the opening of your screen until after the chat screen is closed in the next tick (even though i cannot find such a method in the javadoc)

#

ah, it is a inherited method, that would be why