Меню вывода ников игроков со скроллингом

Версия Minecraft
1.7.10

will0376

Токсичная личность
2,072
55
584
Привет,у меня возникли вопросы про ГУИ и скролл в нем(идея сделать меню для админов , модераторов)
1) хочу сделать вызов ГУИ со скроллом
на счет скролла,я нашел http://forum.mcmodding.ru/showthread.php?tid=8164 (Взял плавный скролл) но не понятно, как его подключить...
Код:
package ru.zed.HMAmod.gui;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.ResourceLocation;
import ru.zed.HMAmod.main;

@SideOnly(Side.CLIENT)
public class HMAgui extends GuiScreen {


    int i;
    int guiWidth = 255;
    int guiHeight = 225;
    List<GuiPlayerInfo> playerInfoList = Minecraft.getMinecraft().getNetHandler().playerInfoList;
    String username = playerInfoList.get(i).name;
    int ping = playerInfoList.get(i).responseTime;

    @Override
    public void drawScreen(int x, int y, float ticks) {
        int guiX = (width - guiWidth) / 2;
        int guiY = (height - guiHeight) / 2;
        GL11.glColor4f(1, 1, 1, 1);
        drawDefaultBackground();
        mc.getTextureManager().bindTexture(new ResourceLocation(main.MODID +":"+ "textures/gui/HMA.png"));
        drawTexturedModalRect(guiX, guiY, 0, 28, guiWidth, guiHeight);
        buttonList.clear();
        super.drawScreen(x, y, ticks);
    }
  /*  private void initGui(){
    	
    }*/
}
 
А как дальше быть?
 
Решение
В главном классе регистрируешь GuiHandler
Код:
    @EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
    	NetworkRegistry.INSTANCE.registerGuiHandler(Main.instance, new GuiHandler());
    }

В хандлере пишешь (не забудь реализовать (написать implements) IGuiHandler)
Код:
public class GuiHandler implements IGuiHandler {
	
	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		return null;
	}

	@Override
	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		if(ID == 1) //Id твоего гуи
			return new HMAgui();
		return null;
	}
}

P.S. В моддинге принято классы гуи называть по формату "GuiYourName" =...
216
6
19
В главном классе регистрируешь GuiHandler
Код:
    @EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
    	NetworkRegistry.INSTANCE.registerGuiHandler(Main.instance, new GuiHandler());
    }

В хандлере пишешь (не забудь реализовать (написать implements) IGuiHandler)
Код:
public class GuiHandler implements IGuiHandler {
	
	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		return null;
	}

	@Override
	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		if(ID == 1) //Id твоего гуи
			return new HMAgui();
		return null;
	}
}

P.S. В моддинге принято классы гуи называть по формату "GuiYourName" = "GuiHMA"
 
608
5
15
zedok написал(а):
Привет,у меня возникли вопросы про ГУИ и скролл в нем(идея сделать меню для админов , модераторов)
1) хочу сделать вызов ГУИ со скроллом
на счет скролла,я нашел http://forum.mcmodding.ru/showthread.php?tid=8164 (Взял плавный скролл) но не понятно, как его подключить...
Код:
package ru.zed.HMAmod.gui;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.ResourceLocation;
import ru.zed.HMAmod.main;

@SideOnly(Side.CLIENT)
public class HMAgui extends GuiScreen {


    int i;
    int guiWidth = 255;
    int guiHeight = 225;
    List<GuiPlayerInfo> playerInfoList = Minecraft.getMinecraft().getNetHandler().playerInfoList;
    String username = playerInfoList.get(i).name;
    int ping = playerInfoList.get(i).responseTime;

    @Override
    public void drawScreen(int x, int y, float ticks) {
        int guiX = (width - guiWidth) / 2;
        int guiY = (height - guiHeight) / 2;
        GL11.glColor4f(1, 1, 1, 1);
        drawDefaultBackground();
        mc.getTextureManager().bindTexture(new ResourceLocation(main.MODID +":"+ "textures/gui/HMA.png"));
        drawTexturedModalRect(guiX, guiY, 0, 28, guiWidth, guiHeight);
        buttonList.clear();
        super.drawScreen(x, y, ticks);
    }
  /*  private void initGui(){
    	
    }*/
}
 
А как дальше быть?
В скролле есть переменная percent.
Не знаю как точно, но можно рендерить фон и текст за основным гуи, в зависимости от percent двигать текст вверх или вниз. (+Прикрепить проверку, какие строчки попадают в рамки, а какие нет)
 

will0376

Токсичная личность
2,072
55
584
svk2140 написал(а):
Не знаю как точно, но можно рендерить фон и текст за основным гуи, в зависимости от percent двигать текст вверх или вниз. (+Прикрепить проверку, какие строчки попадают в рамки, а какие нет)
cо списком(как в меню мультиплеера) прокатит?(кстати.. а как его сделать то можно? список игроков с сервера и их пинг получаю через  
Код:
            List<GuiPlayerInfo> playerInfoList = Minecraft.getMinecraft().getNetHandler().playerInfoList;
            String username = playerInfoList.get(i).name;
            int ping = playerInfoList.get(i).responseTime;
)
 
Сверху