- 236
- 4
- 22
Всем привет. Нужна помощь с открисовкой слота для GUI. Gui этот клиентский, по этому наследуется от GuiScreen - в нём нет стандартного метода рендера слотов. Я открыл в коде майна класс где есть этот рендер и попытался его скопировать. В итоге получилось, но не совсем качественно. Когда я навожу на слот в Gui - тутипы уходят на задний фон. Примерно так получается:
Скорее всего проблемы с GL11, в котором я ничерта не понял. Помогите пожалуйста разобраться в чём на самом деле дело и вытянуть тултип "на передний слой". Попутно задам вопрос - можно ли в классе-наследнике GuiScreen отловить измену размера окна игры? (свернули игру, растянули и т.п.)
Собственно мой "код", который я частично выпилил из src майна:
Заранее спасибо за помощь, если кто-то поможет.
Скорее всего проблемы с GL11, в котором я ничерта не понял. Помогите пожалуйста разобраться в чём на самом деле дело и вытянуть тултип "на передний слой". Попутно задам вопрос - можно ли в классе-наследнике GuiScreen отловить измену размера окна игры? (свернули игру, растянули и т.п.)
Собственно мой "код", который я частично выпилил из src майна:
drawSlot:
private void drawSlot(Slot p_146977_1_, int mouseX, int mouseY)
{
int i = p_146977_1_.xDisplayPosition;
int j = p_146977_1_.yDisplayPosition;
ItemStack itemstack = p_146977_1_.getStack();
boolean flag = false;
String s = null;
if (itemstack != null && this.mouseIsOverSlot(p_146977_1_, mouseX, mouseY))
{
flag = true;
if (itemstack.stackSize > itemstack.getMaxStackSize())
{
s = EnumChatFormatting.YELLOW + "" + itemstack.getMaxStackSize();
itemstack.stackSize = itemstack.getMaxStackSize();
}
if (itemstack.stackSize > p_146977_1_.getSlotStackLimit())
{
s = EnumChatFormatting.YELLOW + "" + p_146977_1_.getSlotStackLimit();
itemstack.stackSize = p_146977_1_.getSlotStackLimit();
}
}
this.zLevel = 100.0F;
itemRender.zLevel = 100.0F;
if (flag)
{
drawRect(i, j, i + 16, j + 16, -2130706433);
this.renderToolTip(itemstack, i, j);
}
RenderHelper.enableGUIStandardItemLighting();
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), itemstack, i, j);
itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), itemstack, i, j, s);
itemRender.zLevel = 0.0F;
this.zLevel = 0.0F;
}