Получение скина головы игрока

Версия Minecraft
1.12.2

will0376

Токсичная личность
2,058
55
572
Ночи доброй всем. Пытаюсь получить скин головы игрока, на данный момент имеется переменная ResourceLocation, в которую входит весь скин:
ResourceLocation skin = new NetworkPlayerInfo(Minecraft.getMinecraft().player.getGameProfile()).getLocationSkin()
теперь вопрос: как голову от туда отобразить в гуи?
пробовал через:
Java:
bufferbuilder.pos(x,y+h,0).tex(0.125D, 0.5D).endVertex(); //нижний-левый
        bufferbuilder.pos(x + w, y + h, 0).tex(0.25D, 0.5D).endVertex();//нижний-правый
        bufferbuilder.pos(x + w, y, 0).tex(0.25D, 0.25D).endVertex();//верхний-правый
        bufferbuilder.pos(x, y, 0).tex(0.125D, 0.25D).endVertex();//верхний-левый
Но получаю какую-то хрень:
1555708643000.png
(в тесселяторе не разбираюсь совсем. код был нагло сперт из какого-то мода версии 1.7.10..)
 
Последнее редактирование:
Решение
Java:
GL11.glTranslatef(x, y, 0.0F);
GL11.glScalef(3.0F, 3.0F, 0.0F);
Gui.drawScaledCustomSizeModalRect(0, 0, 8.0F, 8.0F, 8, 8, 8, 8, 64.0F, 64.0F);
Вообще это довольно костыльный способ, и лучше так не делать(я про вызовы glScale, glTranslate и т.п.)
241
20
75
Ночи доброй всем. Пытаюсь получить скин головы игрока, на данный момент имеется переменная ResourceLocation, в которую входит весь скин:
ResourceLocation skin = new NetworkPlayerInfo(Minecraft.getMinecraft().player.getGameProfile()).getLocationSkin()
теперь вопрос: как голову от туда отобразить в гуи?
пробовал через:
Держи
Код:
    protected ResourceLocation func_110817_a(AbstractClientPlayer par1AbstractClientPlayer) {
        return par1AbstractClientPlayer.getLocationSkin();
    }

    public void drawTexturedModalRect(int p_73729_1_, int p_73729_2_, int p_73729_3_, int p_73729_4_, int p_73729_5_,
            int p_73729_6_) {
        float f = 0.00390625F;
        float f1 = 0.00390625F;

        Tessellator tessellator = Tessellator.instance;
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(p_73729_1_ + 0, p_73729_2_ + p_73729_6_, this.zLevel, (p_73729_3_ + 0) * f,
                (p_73729_4_ + p_73729_6_) * f1);
        tessellator.addVertexWithUV(p_73729_1_ + p_73729_5_, p_73729_2_ + p_73729_6_, this.zLevel,
                (p_73729_3_ + p_73729_5_) * f, (p_73729_4_ + p_73729_6_) * f1);
        tessellator.addVertexWithUV(p_73729_1_ + p_73729_5_, p_73729_2_ + 0, this.zLevel, (p_73729_3_ + p_73729_5_) * f,
                (p_73729_4_ + 0) * f1);
        tessellator.addVertexWithUV(p_73729_1_ + 0, p_73729_2_ + 0, this.zLevel, (p_73729_3_ + 0) * f,
                (p_73729_4_ + 0) * f1);
        tessellator.draw();
    }
 
Последнее редактирование:

will0376

Токсичная личность
2,058
55
572
Очень интересный код, спасибо. но есть пара вопросов по GL...
без scalef всё идеально,только голова маловата(есс-но, 8*8пикселей всего .-.)
1555768335310.png
но с ним...
1555768361737.png
если развернуть экран - вообще улетает за пределы гуи...
1555768398858.png
 

will0376

Токсичная личность
2,058
55
572
Java:
Minecraft.getMinecraft().getTextureManager().bindTexture(skin);

        GL11.glPushMatrix();
        //GL11.glTranslatef(20,30, 0.0F);
        //GL11.glScalef(-1.0F, -1.0F, 0.0F);
        GL11.glScalef(3.0F, 3.0F, 0.0F);
        Gui.drawScaledCustomSizeModalRect(x, y, 8.0F, 8.0F, 8, 8, 8, 8, 64.0F, 64.0F);
        GL11.glPopMatrix();
зы. забыл упомянуть, что я не совсем понимаю, для чего мы сначала -1.0 ставим,а потом только 3,0...
 

Icosider

Kotliner
Администратор
3,600
99
663
Java:
GL11.glTranslatef(x, y, 0.0F);
GL11.glScalef(3.0F, 3.0F, 0.0F);
Gui.drawScaledCustomSizeModalRect(0, 0, 8.0F, 8.0F, 8, 8, 8, 8, 64.0F, 64.0F);
Вообще это довольно костыльный способ, и лучше так не делать(я про вызовы glScale, glTranslate и т.п.)
 
Сверху