Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос JumpCircle 1.16.5 png

  • Автор темы Автор темы Teehi
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2023
Сообщения
47
Реакции
0
Просто не рендрерится png

Код:
Expand Collapse Copy
public class JumpCircle extends Module {

    private List<Circle> circleList = new ArrayList<>();;

    public JumpCircle () {
        setKey((short) KeyEvent.VK_G);
    }

    @Override
    public void disabled() {
        circleList.remove(1);
        super.disabled();
    }

    @SubscribeEvent
    public void onJump (PlayerJumpEvent jumpEvent) {
        ClientPlayerEntity clientPlayer = mc.player;
        assert clientPlayer != null;
        if (clientPlayer.isOnGround()) {
            circleList.add(new Circle(new Vector3d(clientPlayer.getPosX(), clientPlayer.getPosY(), clientPlayer.getPosZ()), 0));
        }
    }

    public MatrixStack matrixFrom (MatrixStack matrixStack, ActiveRenderInfo camera) {
        matrixStack.rotate(Vector3f.XP.rotationDegrees(camera.getPitch()));
        matrixStack.rotate(Vector3f.YP.rotationDegrees(camera.getYaw() + 180F));
        return matrixStack;
    }

    @SubscribeEvent
    public void worldRender (WorldRenderEvent worldRender) {
        MatrixStack matrixStack = matrixFrom(worldRender.getMatrixStack(), mc.gameRenderer.getActiveRenderInfo());
        double ix = -mc.getRenderManager().info.getProjectedView().getX();
        double iy = -mc.getRenderManager().info.getProjectedView().getY();
        double iz = -mc.getRenderManager().info.getProjectedView().getZ();
        Collections.reverse(circleList);
        for (Circle circle : circleList) {
            double x = circle.getVector3d().getX() - circle.getFactor() / 2;
            double y = circle.getVector3d().getY();
            double z = circle.getVector3d().getZ() - circle.getFactor() / 2;

            circle.setFactor(lerp(circle.getFactor(), 1.5F, .80F));

            Tessellator tessellator = Tessellator.getInstance();
            BufferBuilder buffer = tessellator.getBuffer();

            matrixStack.push();
            matrixStack.translate(ix, iy, iz);
            matrixStack.translate(x, y, z);
            matrixStack.rotate(new Quaternion(new Vector3f(1, 0, 0), 90F, true));

            RenderSystem.enableBlend();
            RenderSystem.disableAlphaTest();
            RenderSystem.depthMask(false);

            GL11.glAlphaFunc(GL11.GL_GREATER, .02F);
            GL11.glDisable(GL11.GL_POINT_SMOOTH);

            int[] c = rgba(new Color(0xFFFFFF).getRGB());

            RenderSystem.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
            RenderSystem.enableDepthTest();

            buffer.begin(GL_QUADS, POSITION_TEX_COLOR);
            mc.getTextureManager().bindTexture(new ResourceLocation("assets/minecraft/textures/item/apple.png"));

            buffer.pos(matrixStack.getLast().getMatrix(), 0, 0, 0).tex(0, 0).color(c[0], c[1], c[2], c[3]).endVertex();
            buffer.pos(matrixStack.getLast().getMatrix(), 0, circle.getFactor(), 0).tex(0, 1).color(c[0], c[1], c[2], c[3]).endVertex();
            buffer.pos(matrixStack.getLast().getMatrix(), circle.getFactor(), circle.getFactor(), 0).tex(1, 1).color(c[0], c[1], c[2], c[3]).endVertex();
            buffer.pos(matrixStack.getLast().getMatrix(), circle.getFactor(), 0, 0).tex(1, 0).color(c[0], c[1], c[2], c[3]).endVertex();

            tessellator.draw();

            RenderSystem.enableBlend();
            RenderSystem.disableBlend();
            RenderSystem.depthMask(true);

            matrixStack.pop();
        }
        Collections.reverse(circleList);
    }

    @Getter
    @AllArgsConstructor
    public static class Circle {

        private Vector3d vector3d;
        private @Setter float factor;

    }

    public static int[] rgba (int color) {
        return new int[] { color >> 16 & 0xFF, color >> 8 & 0xFF, color & 0xFF, color >> 24 & 0xFF };
    }

    public static float lerp (float a, float b, float t) {
        return a + (b - a) * t;
    }

}
1696021089359.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1696024212851.png

Странно, но надо использовать не полный путь он assets/, а от textures/
mc.getTextureManager().bindTexture(new ResourceLocation("textures/item/apple.png"));
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу