При открытии GUI пропадает курсор

Версия Minecraft
1.12.2

will0376

Токсичная личность
2,059
55
573
Ночи доброй всем. создал свой гуи, но пропадает курсор при входе в него(если вывести мышь с окна майна и "ввести" обратно - появляется.)
1554073726204.png
Отрисовка гуи:
Java:
    public void drawScreen(int mouseX, int mouseY, float partialTicks){
        int x = (this.width - this.xSize) / 2-105;
        int y = (this.height - this.ySize) / 2;
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        GL11.glDisable(2896);
        super.mc.renderEngine.bindTexture(new ResourceLocation(Main.MODID + ":textures/gui/bg2.png"));
        this.drawWorldBackground(1);
        drawTextured(x,y,mouseX);//текстура
        drawString(mc.fontRenderer,I18n.format("shopper.page")+page+"/"+getMaxPage(),this.width/2-150-(I18n.format("shopper.page")+page+"/"+getMaxPage()).length(),this.height/2+85,16777215);
        for(int i = 0; i < 3;i++)
        for(int ii = 0; ii <= 7;ii++)
        drawSquare((x+50)+(ii*49), (y+25)+(i*60), (x+5)+(ii*49), (y-15)+(i*60), Integer.MIN_VALUE);//Квадратики

        drawItems(x,y);

        super.drawScreen(mouseX, mouseY, partialTicks);
    }
Отрисовка текстуры(да,говнокод. Ну что поделать.):
Java:
   private void drawTextured(int x,int y,int mouseX){
        Tessellator tessellator = Tessellator.getInstance();
        BufferBuilder bufferbuilder = tessellator.getBuffer();
        bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
        bufferbuilder.pos(x, y+(176+20), 0.0D).tex(0, (double) (1F + (float)mouseX)).endVertex();
        bufferbuilder.pos(x+400, y+(176+20), 0.0D).tex((double)1F, (double)(1F + (float)mouseX)).endVertex();
        bufferbuilder.pos(x+400 , y-20.0D, 0.0D).tex((double)1F , (double)mouseX).endVertex();
        bufferbuilder.pos(x, y-20, 0).tex(0, mouseX).endVertex();
        tessellator.draw();
    }
Чем исправить?
А. да,еще. в drawItems Я вызываю RenderHelper.enableGUIStandardItemLighting(); без disableStandardItemLighting и enableStandardItemLighting
 
1,038
57
229
this.drawWorldBackground(1);
должен быть в самом верху

super.mc.renderEngine.bindTexture(new ResourceLocation(Main.MODID + ":textures/gui/bg2.png"));
можно написать просто
mc.renderEngine.bindTexture(new ResourceLocation(Main.MODID + ":textures/gui/bg2.png"));

private void drawTextured
выглядит так будто ты прямоугольник рисуешь
4a7609703b.jpg
 

will0376

Токсичная личность
2,059
55
573
выглядит так будто ты прямоугольник рисуешь
Пришлось свою реализацию накостылить, ибо стандартная кубаческая рисует текстуры чисто в квадрат..
this.drawWorldBackground(1);
Спасибо. Опробую Не. всё так-же
апд. Лол. Это никак с drawScreen не связанно...
Апд2. Интересно. если я вызываю гуи с клавиши - всё ОК, а если с сервера(отсылаю пакет,проверяю содержимое на нужное слово) - такая бодяга. Странно. ибо что на клавише, что с пакета - Minecraft.getMinecraft().displayGuiScreen()
 
Последнее редактирование:
1,038
57
229
и правда смешно, глаза подвели, уж больно он похож.
Ну и ты можешь рисовать курсор мыши сам, он точно будет отображаться.. Изначально при открытии gui он находится по центру.
И возможно это вообще никак не связано с твоим GUI.
Попробуй открыть не свой, а ванильный gui по сети
 

will0376

Токсичная личность
2,059
55
573
а ванильный gui по сети
меню паузы - такая-же фигня... Ладно,придётся костылить что-то...
рисовать курсор мыши сам
так и сделал.
Мб кому-то понадобится:
Java:
int xx = Mouse.getEventX()*width/mc.displayWidth;
        int yy = super.height-Mouse.getEventY()*height/mc.displayHeight-1;
        drawDot(xx,yy);
Java:
    private void drawDot(int x,int y){
        drawString(mc.fontRenderer,".",x+2,y-2,16777215);
        drawString(mc.fontRenderer,"...",x,y,16777215);
        drawString(mc.fontRenderer,".",x+2,y+2,16777215);
    }
 
Последнее редактирование:

tox1cozZ

aka Agravaine
8,454
598
2,890
гуи открывать надо в потоке майна
Весь код нужно выполнять в потоке майна.
Выполнять свой код в потоках нетти не только нельзя, но и опасно - если он тяжелый, ты блочишь целый поток приема данных, а их всего несколько штук, соответственно весь конвеер обработки пакетов страдает.
 
Сверху