Как сделать в майнкрафте невосстановимое меню GuiMainMenu? - PullRequest
0 голосов
/ 08 января 2019

Сначала я не знаю, каким должен быть заголовок, но я покажу его ниже. Я просто создаю собственный клиент Minecraft для моего сервера. я просто добавляю некоторые кнопки в главное меню, такие как Домашняя страница, Магазин, ссылка на Facebook, прямое соединение с сервером, и когда я изменяю размер игрового окна, они меняют свое местоположение? ИДК.

Как и должно быть

Окно игры по умолчанию

Когда я изменяю его размер

GuiMainMenu.java:

/** See all: https://pastebin.com/PagvD7hh */ 
public void initGui()
{
    this.viewportTexture = new DynamicTexture(256, 256);
    this.backgroundTexture = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
    this.field_193978_M = this.fontRendererObj.getStringWidth("© Mojang AB");
    this.field_193979_N = this.width - this.field_193978_M - 2;
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());

    if (calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
    {
        this.splashText = "Merry X-mas!";
    }
    else if (calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
    {
        this.splashText = "Happy new year!";
    }
    else if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
    {
        this.splashText = "OOoooOOOoooo! Spooky!";
    }

    int i = 24;
    int j = this.height / 4 + 48;

    if (this.mc.isDemo())
    {
        this.addDemoButtons(j, 24);
    }
    else
    {
        this.addSingleplayerMultiplayerButtons(j, 24);
    }

    this.buttonList.add(new GuiButton(0, this.width / 2 - 100, j + 90 + 30, 98, 20, I18n.format("menu.options")));
    this.buttonList.add(new GuiButton(4, this.width / 2 + 2, j + 90 + 30, 98, 20, I18n.format("menu.quit")));
    this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, j + 90 + 30));

    synchronized (this.threadLock)
    {
        this.openGLWarning1Width = this.fontRendererObj.getStringWidth(this.openGLWarning1);
        this.openGLWarning2Width = this.fontRendererObj.getStringWidth(this.openGLWarning2);
        int k = Math.max(this.openGLWarning1Width, this.openGLWarning2Width);
        this.openGLWarningX1 = (this.width - k) / 2;
        this.openGLWarningY1 = (this.buttonList.get(0)).yPosition - 24;
        this.openGLWarningX2 = this.openGLWarningX1 + k;
        this.openGLWarningY2 = this.openGLWarningY1 + 24;
    }

    this.mc.setConnectedToRealms(false);

    if (Minecraft.getMinecraft().gameSettings.getOptionOrdinalValue(GameSettings.Options.REALMS_NOTIFICATIONS) && !this.hasCheckedForRealmsNotification)
    {
        RealmsBridge realmsbridge = new RealmsBridge();
        this.realmsNotification = realmsbridge.getNotificationScreen(this);
        this.hasCheckedForRealmsNotification = true;
    }

    if (this.areRealmsNotificationsEnabled())
    {
        this.realmsNotification.setGuiSize(this.width, this.height);
        this.realmsNotification.initGui();
    }

    if (Reflector.NotificationModUpdateScreen_init.exists())
    {
        this.modUpdateNotification = (GuiScreen)Reflector.call(Reflector.NotificationModUpdateScreen_init, this, this.modButton);
    }
}

/**
 * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game.
 */
private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
{
    this.buttonList.add(new GuiButton(1, this.width / 2 - 100, p_73969_1_, I18n.format("menu.singleplayer")));
    this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_, 98, 20, I18n.format("menu.multiplayer")));
    this.buttonList.add(new GuiButton(241, this.width / 2 + 2, p_73969_1_ + p_73969_2_, 98, 20, I18n.format("Hymine Server")));
    this.buttonList.add(new GuiButton(242, this.width / 2 - 154, this.height - 280, 100, 20, I18n.format("Trang Chủ")));
    this.buttonList.add(new GuiButton(243, this.width / 2 - 50, this.height - 280, 100, 20, I18n.format("Nạp Thẻ")));
    this.buttonList.add(new GuiButton(244, this.width / 2 + 4 + 50, this.height - 280, 100, 20, I18n.format("Nhóm Facebook")));

    if (Reflector.GuiModList_Constructor.exists())
    {
        this.realmsButton = this.addButton(new GuiButton(14, this.width / 2 + 2, p_73969_1_ + p_73969_2_ * 2, 98, 20, I18n.format("menu.online").replace("Minecraft", "").trim()));
        this.buttonList.add(this.modButton = new GuiButton(6, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, 98, 20, I18n.format("fml.menu.mods")));
    }
    else
    {
        this.realmsButton = this.addButton(new GuiButton(14, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("menu.online")));
    }
}

Ладно, есть ли возможность сделать его полноэкранным по умолчанию, и пользователи не могут изменить его размер? или пользователь может изменить размер, полноэкранный это, но там кнопки не меняют свое местоположение? спасибо

P / s: Извините за мой плохой английский. Извините

...