Как сделать хотбар

Версия Minecraft
1.12.2
19
0
Доброе утро. Я хочу отобразить слот хотбар на экране.
Как отобразить предметы в хотбар слоте?

2019-03-02_14.29.42.png
 
516
11
39
То, что я хочу, это отобразить Предметы хотбар на экране.
Тебе не надо отображать предметы,а надо отобразить слоты,в которых уже буду предметы твои ,просто добавить картинку не канает
 
269
8
19
На 1.7.10 может поидёт (заметил что у тебя 1.12) когда уже пост написал.


Если хочешь чтобы всё работало также как стандартно то есть,обводка выбранного слота бинд текстуры на каждый слот.
то вот.




Java:
   protected static final RenderItem itemRenderer;
        public void drawHotBarUI(final RenderGameOverlayEvent e) {
            if (e.type == RenderGameOverlayEvent.ElementType.ALL) {
                GL11.glPushMatrix();
                GL11.glTranslatef((float)(e.resolution.getScaledWidth() / 2 - 50 + 2), (float)(e.resolution.getScaledHeight() - 66), 0.0f);
                final Tessellator t = Tessellator.instance;
             //тут бинд текстуры на обводку слота
                if (((EntityPlayer)this.mc.thePlayer).inventory.currentItem >= 0 && ((EntityPlayer)this.mc.thePlayer).inventory.currentItem <= 9) {
                    t.startDrawingQuads();
                    t.addVertexWithUV((double)(-2 + ((EntityPlayer)this.mc.thePlayer).inventory.currentItem * 20), -2.0, 0.0, 0.0, 0.0);
                    t.addVertexWithUV((double)(-2 + ((EntityPlayer)this.mc.thePlayer).inventory.currentItem * 20), 18.0, 0.0, 0.0, 1.0);
                    t.addVertexWithUV((double)(18 + ((EntityPlayer)this.mc.thePlayer).inventory.currentItem * 20), 18.0, 0.0, 1.0, 1.0);
                    t.addVertexWithUV((double)(18 + ((EntityPlayer)this.mc.thePlayer).inventory.currentItem * 20), -2.0, 0.0, 1.0, 0.0);
                    t.draw();
                }
                for (int i = 0; i < 9; ++i) {
                  //тут бинд текстуры на сам слот.
                    GL11.glEnable(3042);
                    GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
                    RenderHelper.disableStandardItemLighting();
                    t.startDrawingQuads();
                    t.addVertexWithUV((double)(0 + i * 20), 0.0, 0.0, 0.0, 0.0);
                    t.addVertexWithUV((double)(0 + i * 20), 16.0, 0.0, 0.0, 1.0);
                    t.addVertexWithUV((double)(16 + i * 20), 16.0, 0.0, 1.0, 1.0);
                    t.addVertexWithUV((double)(16 + i * 20), 0.0, 0.0, 1.0, 0.0);
                    t.draw();
                    this.renderInventorySlot(i, i * 20, 0, 0.0f);
                }
                RenderHelper.disableStandardItemLighting();
                GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
                GL11.glPopMatrix();
            }
        }
 
        protected void renderInventorySlot(final int p_73832_1_, final int p_73832_2_, final int p_73832_3_, final float p_73832_4_) {
            final ItemStack itemstack = ((EntityPlayer)this.mc.thePlayer).inventory.mainInventory[p_73832_1_];
            if (itemstack != null) {
                final float f1 = itemstack.animationsToGo - p_73832_4_;
                if (f1 > 0.0f) {
                    GL11.glPushMatrix();
                    final float f2 = 1.0f + f1 / 5.0f;
                    GL11.glTranslatef((float)(p_73832_2_ + 8), (float)(p_73832_3_ + 12), 0.0f);
                    GL11.glScalef(1.0f / f2, (f2 + 1.0f) / 2.0f, 1.0f);
                    GL11.glTranslatef((float)(-(p_73832_2_ + 8)), (float)(-(p_73832_3_ + 12)), 0.0f);
                }
                RenderGameOverlayHandler.itemRenderer.renderItemIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), itemstack, p_73832_2_, p_73832_3_);
                if (f1 > 0.0f) {
                    GL11.glPopMatrix();
                }
                RenderGameOverlayHandler.itemRenderer.renderItemOverlayIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), itemstack, p_73832_2_, p_73832_3_);
            }
        }
        static {
            itemRenderer = new RenderItem();
        }
Без установленных текстур
1551520677572.png


Если хочешь просто отобразить предметы то вот

Java:
        protected static final RenderItem itemRenderer;
  public void drawHotBarUI(final RenderGameOverlayEvent e) {
            if (e.type == RenderGameOverlayEvent.ElementType.ALL) {
                GL11.glPushMatrix();
                GL11.glTranslatef((float)(e.resolution.getScaledWidth() / 2 - 50 + 2), (float)(e.resolution.getScaledHeight() - 66), 0.0f);
                for (int i = 0; i < 9; ++i) {
                    GL11.glEnable(3042);
                    GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
                    RenderHelper.disableStandardItemLighting();
                    this.renderInventorySlot(i, i * 20, 0, 0.0f);
                }
                RenderHelper.disableStandardItemLighting();
                GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
                GL11.glPopMatrix();
            }
        }
    
        protected void renderInventorySlot(final int p_73832_1_, final int p_73832_2_, final int p_73832_3_, final float p_73832_4_) {
            final ItemStack itemstack = ((EntityPlayer)this.mc.thePlayer).inventory.mainInventory[p_73832_1_];
            if (itemstack != null) {
                final float f1 = itemstack.animationsToGo - p_73832_4_;
                if (f1 > 0.0f) {
                    GL11.glPushMatrix();
                    final float f2 = 1.0f + f1 / 5.0f;
                    GL11.glTranslatef((float)(p_73832_2_ + 8), (float)(p_73832_3_ + 12), 0.0f);
                    GL11.glScalef(1.0f / f2, (f2 + 1.0f) / 2.0f, 1.0f);
                    GL11.glTranslatef((float)(-(p_73832_2_ + 8)), (float)(-(p_73832_3_ + 12)), 0.0f);
                }
                RenderGameOverlayHandler.itemRenderer.renderItemIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), itemstack, p_73832_2_, p_73832_3_);
                if (f1 > 0.0f) {
                    GL11.glPopMatrix();
                }
                RenderGameOverlayHandler.itemRenderer.renderItemOverlayIntoGUI(this.mc.fontRenderer, this.mc.getTextureManager(), itemstack, p_73832_2_, p_73832_3_);
            }
        }
        static {
            itemRenderer = new RenderItem();
        }

1551520840059.png
 
Последнее редактирование:
28
0
Если хочешь чтобы всё работало также как стандартно то есть,обводка выбранного слота бинд текстуры на каждый слот.
то вот.
Could you answer the question? There is a problem, First, the vanilla hotbar item is still displayed. Second, I do not know how to modify the location of this hotbar. Third, items such as fleece lose their light. Finally, the item appears above the chat overlay.

2019-08-01_22.45.33.png

2019-08-01_22.56.39.png
 
7,099
324
1,510
7,099
324
1,510
Сверху