Не переключается гуи-лист

Версия Minecraft
1.7.10
128
12
Я сделал 2 листа-гуи. На одном располагается больше кнопок, на другом меньше, но я столкнулся с проблемой. В кейсе я задаю, что при нажатии происходит this.list = 1 (просто list = 1 тоже пробовал).
Что мне делать с этим?

Java:
package ru.whitewarrior.testmod;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.util.ResourceLocation;
import sun.font.FontScaler;

public class GuiForge extends GuiScreen {
    private byte list;
    protected static final ResourceLocation BUTTON_TEXTURES = new ResourceLocation("textures/gui/widgets.png");
    GuiButton Button1;
    GuiButton Button2;
    GuiButton Button3;
    GuiButton Button4;
    GuiButton Button5;
    GuiButton Button6;
    GuiButton Button7;
    GuiButton Button8;
    GuiButton Button9;
    GuiButton Button10;
    GuiButton Button11;
    GuiButton Button12;
    GuiButton Button13;
    GuiButton Button14;
    GuiButton Button15;
    GuiButton Next;
    GuiButton Prev;
    
    int guiWidth = 256;
    int guiHeight = 256;   
    Minecraft mc = Minecraft.getMinecraft();

    @Override
    public void drawScreen(int x, int y, float ticks) {
        ScaledResolution scale = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
        int width = scale.getScaledWidth();
        int height = scale.getScaledHeight();
        
        int tabWidth = 40;
        int tabHeight = 20;
        
        
        
        
        
        int guiX = (width - guiWidth) / 2;
        int guiY = (height - guiHeight) / 2;
        GL11.glColor4f(1, 1, 1, 1);
        drawDefaultBackground();
         mc.renderEngine.bindTexture(new ResourceLocation(Main.modid, "textures/gui/ForgeGUI.png"));
        drawTexturedModalRect(guiX, guiY, 0, 0, guiWidth, guiHeight);
        GL11.glPushMatrix();
        GL11.glScalef(2.0F, 2.0F, zLevel);
        fontRendererObj.drawStringWithShadow("Forge", guiX - 54, guiY + 2, 0xFFFF1);
        GL11.glPopMatrix();
        fontRendererObj.drawString("Choose material for crafting.", guiX + 75, guiY + 15, 0xF);
        super.drawScreen(x, y, ticks);
        
    }
    
    @Override
    public void initGui() {
        
        int guiX = (width - guiWidth) / 2;
        int guiY = (height - guiHeight) / 2;
        
        buttonList.clear();   
        if(list == 0){
        buttonList.add(Button1 = new GuiButton(0, guiX + 70, guiY + 30, 120, 15, "Leather"));
        buttonList.add(Button2 = new GuiButton(1, guiX + 70, guiY + 45, 120, 15, "Iron"));
        buttonList.add(Button3 = new GuiButton(2, guiX + 70, guiY + 60, 120, 15, "Hide"));
        buttonList.add(Button4 = new GuiButton(3, guiX + 70, guiY + 75, 120, 15, "Studded"));
        buttonList.add(Button5 = new GuiButton(4, guiX + 70, guiY + 90, 120, 15, "Leather"));
        buttonList.add(Button6 = new GuiButton(5, guiX + 70, guiY + 105, 120, 15, "Elven"));
        buttonList.add(Button7 = new GuiButton(6, guiX + 70, guiY + 120, 120, 15, "Scaled"));
        buttonList.add(Button8 = new GuiButton(7, guiX + 70, guiY + 135, 120, 15, "Glass"));
        buttonList.add(Button9 = new GuiButton(8, guiX + 70, guiY + 150, 120, 15, "Dragon Scale"));
        buttonList.add(Button11 = new GuiButton(9, guiX + 70, guiY + 165, 120, 15, "Ancient Nord"));
        buttonList.add(Button12 = new GuiButton(10, guiX + 70, guiY + 180, 120, 15, "Imperial"));
        buttonList.add(Next = new GuiButton(1488, guiX + 110, guiY + 220, 40, 15, "Next page"));
        buttonList.add(Prev = new GuiButton(1337, guiX + 110, guiY + 235, 40, 15, "Prev page"));
        if(list==1){
            buttonList.add(Button1 = new GuiButton(11, guiX + 70, guiY + 30, 120, 15, "Steel"));
            buttonList.add(Button1 = new GuiButton(12, guiX + 70, guiY + 45, 120, 15, "Dwarven"));
            buttonList.add(Button1 = new GuiButton(13, guiX + 70, guiY + 60, 120, 15, "Orcish"));
            buttonList.add(Button1 = new GuiButton(14, guiX + 70, guiY + 75, 120, 15, "Ebony"));
            buttonList.add(Button1 = new GuiButton(15, guiX + 70, guiY + 90, 120, 15, "Dragon Plate"));
            buttonList.add(Button1 = new GuiButton(16, guiX + 70, guiY + 105, 120, 15, "Daedric"));
            buttonList.add(Next = new GuiButton(1488, guiX + 110, guiY + 220, 40, 15, "Next page"));
            buttonList.add(Prev = new GuiButton(1337, guiX + 110, guiY + 235, 40, 15, "Prev page"));
            super.initGui();
            
        }
        }
    }
    
 @Override
    protected void actionPerformed(GuiButton button) {
    switch(button.id){
    case 1488:
    list = 1;
    case 1337:
    list = 0;
    }
    
    super.actionPerformed(button);
 }
    }
 
Решение
initGui только 1 раз вызывается вроде. Он не обвновляется. Легче просто в initGui() добавить все кнопки, а в actionPerformed менять значение .visible нужным кнопкам... Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()

Eifel

Модератор
1,624
79
609
initGui только 1 раз вызывается вроде. Он не обвновляется. Легче просто в initGui() добавить все кнопки, а в actionPerformed менять значение .visible нужным кнопкам... Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()
 
128
12
initGui только 1 раз вызывается вроде. Он не обвновляется. Легче просто в initGui() добавить все кнопки, а в actionPerformed менять значение .visible нужным кнопкам... Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()
По человечески можно? Нет никаких visible в actionPerformed.
Где ты видишь, чтобы я initGui 2 раза вызывал? Я разве не в initGui добавил все кнопки -_-?
Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()
, тут я вообще не понял.
 
128
12
initGui только 1 раз вызывается вроде. Он не обвновляется. Легче просто в initGui() добавить все кнопки, а в actionPerformed менять значение .visible нужным кнопкам... Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()
В вк разобрались, всё понял.
 
1,111
47
420
initGui только 1 раз вызывается вроде. Он не обвновляется. Легче просто в initGui() добавить все кнопки, а в actionPerformed менять значение .visible нужным кнопкам... Или чистить баттон лист и заполнять его нужными кнопками так как ты делал в initGui()
Могу ошибаться, но по моему initGui вызывается при каждом растягивании/сужении окна
 
Сверху