Поворот модели

Версия Minecraft
1.12.2

will0376

Токсичная личность
2,076
55
584
Рендерю внутри модели блоки/айтемы. возник вопрос: как их блин поворачивать вокруг СВОЕЙ оси?
попытался добавить стороны своему блоку - не помогло. всё,что там лежит - рендерится в 1 сторону =\
1562261111706.png
хотел вручную крутить их (2-5), но получается достаточно хреново.
1562261152896.png
Подскажет кто что?
Java:
public class RenderInsideEx extends TileEntitySpecialRenderer<TestContainerTileEntity> {
    Minecraft mc = Minecraft.getMinecraft();
    @Override
    public void render(TestContainerTileEntity te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
        try {
            if (te instanceof TestContainerTileEntity) {
                GL11.glPushMatrix();
                super.render(te, x, y, z, partialTicks, destroyStage, alpha);
                IBlockState blockState = te.getWorld().getBlockState(te.getPos());
                ItemStack is = te.itemStackHandler.getStackInSlot(0).copy();
                int face = blockState.getBlock().getMetaFromState(blockState);
                if(is.getItem() instanceof ItemBlock)
                    GL11.glTranslated(x, y - 0.55, z);
                else
                    GL11.glTranslated(x, y -0.2, z);
                if (!is.isEmpty()) {

                    is.setCount(1);
                    ItemRenderer ir = Minecraft.getMinecraft().getItemRenderer();
                    /*if(face == 4) {
                        GL11.glRotated(90, 1, 0, 0);
                        GL11.glRotated(90, 0, 1, 0);
                        GL11.glTranslated(0.2, -0.2, 0);
                    }
                    else if(face == 2){
                        GL11.glRotated(90, 1, 0, 0);
                        GL11.glRotated(90, 0, 1, 0);
                        GL11.glTranslated(0.2, -0.2, 0);
                    }*/
                    GL11.glTranslated(0.5, 0.5, 0.5);
                    GL11.glScaled(2, 2, 2);
                    ir.renderItem(mc.player, is, ItemCameraTransforms.TransformType.GROUND);
                }
                GL11.glPopMatrix();
            }
        }catch (Exception e){e.printStackTrace();}
    }
}
 
3,005
192
592
Соблюдаем авторские права.
P.S. Код не мой.

Java:
public void render(ItemStack stack, double x, double y, double z) {
    if (!stack.isEmpty()) {
        GlStateManager.pushMatrix();
        GlStateManager.translate((float) x + 0.5F, (float) y + 1F, (float) z + 0.5F);

        double boop = Minecraft.getSystemTime() / 800D;
        GlStateManager.translate(0D, Math.sin(boop % (2 * Math.PI)) * 0.065, 0D);
        GlStateManager.rotate((float) (boop * 40D % 360), 0, 1, 0);

        float scale = stack.getItem() instanceof ItemBlock ? 0.85F : 0.65F;
        GlStateManager.scale(scale, scale, scale);
        try {
            renderItemInWorld(stack);
        } catch (Exception e) {
            e.printStackTrace();
        }

        GlStateManager.popMatrix();
    }
}

@SideOnly(Side.CLIENT)
public static void renderItemInWorld(ItemStack stack) {
    GlStateManager.pushMatrix();
    GlStateManager.disableLighting();
    GlStateManager.pushAttrib();
    RenderHelper.enableStandardItemLighting();
    Minecraft.getMinecraft().getRenderItem().renderItem(stack, ItemCameraTransforms.TransformType.FIXED);
    RenderHelper.disableStandardItemLighting();
    GlStateManager.popAttrib();
    GlStateManager.enableLighting();
    GlStateManager.popMatrix();
}
 
3,005
192
592
3,005
192
592

will0376

Токсичная личность
2,076
55
584
оно отличается от того
печку вспомни. она всегда к тебе "рожей" ставится. вот и мне хотелось,чтоб предметы редерелись в сторону "рожи"
Но так даже проще)
 

tox1cozZ

aka Agravaine
8,455
598
2,892
В таком случае, ты получаешь ошибку в консоли, а не краш клиента.
Эм, если ошибка будет в рендере то тебе моментально засрет всю консоль. Смысл?
 
7,099
324
1,510
Разве игнорирование ошибок не усугубляет ситуацию?
 

Sainthozier

Стрелочник
623
11
369
Можно узнать чей? Я сохранил себе в заметки, пригодится рано или поздно. Стараюсь всегда указывать автора, не хотелось бы изменять своим принципам )

P.S. Сорян за оффтоп
 
Сверху