BufferedBuilder не работает так, как я хочу :(

Версия Minecraft
1.19.4
API
Forge
52
1
1
В общем хочу сделать ентити, который будет представлять из себя тупо спрайт, поворот которого зависит от камеры. Глянул код рендера снежка, файрбол и тп - там какой-то метод, который рендерит Item в самых разных позах - все намешано, миллион утилит... Короче. не помогает. Я древний, с 1.7.10 перескочил на 1.19.4. Работает все не так, как я хочу

метод рендера:
@Override
    public void render(SoulEntity soulEntity, float p_114486_, float pTicks, PoseStack poseStack, MultiBufferSource bufferSource, int p_114490_) {

        Vec3 pos = soulEntity.getPosition(pTicks);
        ISoul soul = soulEntity.getSoul();

        if(soul == null)
            return;

        RenderSystem.depthMask(false);
        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
        RenderSystem.setShaderTexture(0, getTextureLocation(soulEntity));
        RenderSystem.setShader(GameRenderer::getPositionColorShader);

        Tesselator t = RenderSystem.renderThreadTesselator();

        poseStack.scale(0.6f, 0.6f, 0.6f);
        poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation());
        poseStack.mulPose(Axis.YP.rotationDegrees(180.0F));
        poseStack.pushPose();

        Color color = soul.getColor();

        BufferBuilder bufferBuilder = t.getBuilder();
        bufferBuilder.clear();
        bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX);

        bufferBuilder.vertex(-1.2f, -1.2f, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 90).uv(1, 1).endVertex();
        bufferBuilder.vertex(1.2f, -1.2f, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 90).uv(0, 1).endVertex();
        bufferBuilder.vertex(1.2f, 1.2f, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 90).uv(0, 0).endVertex();
        bufferBuilder.vertex(-1.2f, 1.2f, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 90).uv(1, 0).endVertex();

        bufferBuilder.vertex(0f - 0.6, 0.0f - 0.6, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 100).uv(1, 1).endVertex();
        bufferBuilder.vertex(1f - 0.4, 0.0f - 0.6, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 100).uv(0, 1).endVertex();
        bufferBuilder.vertex(1f - 0.4, 1.0f - 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 100).uv(0, 0).endVertex();
        bufferBuilder.vertex(0f - 0.6, 1.0f - 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 100).uv(1, 0).endVertex();

        bufferBuilder.vertex((0f - 0.5) + 0.13, (0.0f - 0.5) + 0.13, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 120).uv(1, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.13, (0.0f - 0.5) + 0.13, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 120).uv(0, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.13, 1.0f - 0.5 - 0.13, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 120).uv(0, 0).endVertex();
        bufferBuilder.vertex((0f - 0.5) + 0.13, 1.0f - 0.5 - 0.13, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 120).uv(1, 0).endVertex();

        bufferBuilder.vertex((0f - 0.5) + 0.26, (0.0f - 0.5) + 0.26, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 130).uv(1, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.26, (0.0f - 0.5) + 0.26, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 130).uv(0, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.26, 1.0f - 0.5 - 0.26, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 130).uv(0, 0).endVertex();
        bufferBuilder.vertex((0f - 0.5) + 0.26, 1.0f - 0.5 - 0.26, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 130).uv(1, 0).endVertex();

        bufferBuilder.vertex((0f - 0.5) + 0.4, (0.0f - 0.5) + 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 140).uv(1, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.4, (0.0f - 0.5) + 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 140).uv(0, 1).endVertex();
        bufferBuilder.vertex(1f - 0.5 - 0.4, 1.0f - 0.5 - 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 140).uv(0, 0).endVertex();
        bufferBuilder.vertex((0f - 0.5) + 0.4, 1.0f - 0.5 - 0.4, 0.0).color(color.getRed(), color.getBlue(), color.getGreen(), 140).uv(1, 0).endVertex();


        t.end();
        RenderSystem.disableBlend();
        RenderSystem.depthMask(true);
        poseStack.popPose();

        super.render(soulEntity, p_114486_, pTicks, poseStack, bufferSource, p_114490_);
    }

На экране нет ровным счетом ничего. Либо я накосячил с поворотом, либо матрицу не так передвинул (хотя я ее и двигал, и нет - все равно), либо с uv сделал что-то не так (а я явно сделал что-то не так, потому что в том же партикле совсем по-другому берется текстура). Хотя даже если я накосячил с uv, должен рендерится хотя бы квадратик, насколько я понимаю.
 
Сверху