Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

NameTags | Fabric 1.17.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Дек 2024
Сообщения
60
Реакции
0
Привет, на связи дядя Пастер (aka селфкодер). Сегодня мы сделаем ебанутый (5минутный) код на Fabric 1.17.1.

renderPlayerNames:
Expand Collapse Copy
    private void renderPlayerNames(WorldRenderContext context) {
        MatrixStack matrixStack = context.matrixStack();
        VertexConsumerProvider consumers = context.consumers();
        float tickDelta = mc.getTickDelta();
        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player.isInvisible()) player.setInvisible(false);
            renderPlayerName(player, matrixStack, consumers, tickDelta);
        }
    }

Java:
Expand Collapse Copy
    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, VertexConsumerProvider consumers, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;
        matrixStack.push();
        matrixStack.translate(x - mc.getEntityRenderDispatcher().camera.getPos().x, y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() - 2f, z - mc.getEntityRenderDispatcher().camera.getPos().z);
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);
        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;
        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorShader);
        Color colorsreen = new Color(0,0,0,50);
        Screen.fill(matrixStack, (int) width - 2, -2,textRenderer.getWidth(name) / 2 + 2 ,10, colorsreen.getRGB());
        Text text = Text.of(name);
        textRenderer.draw(text, width, 0, Formatting.WHITE.getColorValue(), false, matrixStack.peek().getModel(), consumers, true, 0, 0xF000F0);
        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();
        matrixStack.pop();
    }

Если нету евента, то регистрируем при включение модуля:
Java:
Expand Collapse Copy
WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);

Если остаются при выключение, то делаем проверку boolean

ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
в дестени паста 1 17 1 пизже соси писют
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет, на связи дядя Пастер (aka селфкодер). Сегодня мы сделаем ебанутый (5минутный) код на Fabric 1.17.1.

renderPlayerNames:
Expand Collapse Copy
    private void renderPlayerNames(WorldRenderContext context) {
        MatrixStack matrixStack = context.matrixStack();
        VertexConsumerProvider consumers = context.consumers();
        float tickDelta = mc.getTickDelta();
        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player.isInvisible()) player.setInvisible(false);
            renderPlayerName(player, matrixStack, consumers, tickDelta);
        }
    }

Java:
Expand Collapse Copy
    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, VertexConsumerProvider consumers, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;
        matrixStack.push();
        matrixStack.translate(x - mc.getEntityRenderDispatcher().camera.getPos().x, y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() - 2f, z - mc.getEntityRenderDispatcher().camera.getPos().z);
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);
        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;
        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorShader);
        Color colorsreen = new Color(0,0,0,50);
        Screen.fill(matrixStack, (int) width - 2, -2,textRenderer.getWidth(name) / 2 + 2 ,10, colorsreen.getRGB());
        Text text = Text.of(name);
        textRenderer.draw(text, width, 0, Formatting.WHITE.getColorValue(), false, matrixStack.peek().getModel(), consumers, true, 0, 0xF000F0);
        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();
        matrixStack.pop();
    }

Если нету евента, то регистрируем при включение модуля:
Java:
Expand Collapse Copy
WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);

Если остаются при выключение, то делаем проверку boolean

ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.
так это обычный ник и все
 
Хз, я только начал все изучать, от силы неделя, до этого сидел на экспе 2.0, перешел на фабрик так как по мне он легче и удобен, но бесит с версиями своими, сейчас думаю на 1.21 делать, там фпс куча
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет, на связи дядя Пастер (aka селфкодер). Сегодня мы сделаем ебанутый (5минутный) код на Fabric 1.17.1.

renderPlayerNames:
Expand Collapse Copy
    private void renderPlayerNames(WorldRenderContext context) {
        MatrixStack matrixStack = context.matrixStack();
        VertexConsumerProvider consumers = context.consumers();
        float tickDelta = mc.getTickDelta();
        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player.isInvisible()) player.setInvisible(false);
            renderPlayerName(player, matrixStack, consumers, tickDelta);
        }
    }

Java:
Expand Collapse Copy
    private void renderPlayerName(PlayerEntity player, MatrixStack matrixStack, VertexConsumerProvider consumers, float tickDelta) {
        double x = player.prevX + (player.getX() - player.prevX) * tickDelta;
        double y = player.prevY + (player.getY() - player.prevY) * tickDelta;
        double z = player.prevZ + (player.getZ() - player.prevZ) * tickDelta;
        matrixStack.push();
        matrixStack.translate(x - mc.getEntityRenderDispatcher().camera.getPos().x, y - mc.getEntityRenderDispatcher().camera.getPos().y + player.getHeight() - 2f, z - mc.getEntityRenderDispatcher().camera.getPos().z);
        matrixStack.multiply(mc.getEntityRenderDispatcher().getRotation());
        matrixStack.scale(-0.025f, -0.025f, 0.025f);
        TextRenderer textRenderer = mc.textRenderer;
        String name = player.getName().getString();
        float width = -textRenderer.getWidth(name) / 2f;
        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(GameRenderer::getPositionColorShader);
        Color colorsreen = new Color(0,0,0,50);
        Screen.fill(matrixStack, (int) width - 2, -2,textRenderer.getWidth(name) / 2 + 2 ,10, colorsreen.getRGB());
        Text text = Text.of(name);
        textRenderer.draw(text, width, 0, Formatting.WHITE.getColorValue(), false, matrixStack.peek().getModel(), consumers, true, 0, 0xF000F0);
        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();
        matrixStack.pop();
    }

Если нету евента, то регистрируем при включение модуля:
Java:
Expand Collapse Copy
WorldRenderEvents.AFTER_ENTITIES.register(this::renderPlayerNames);

Если остаются при выключение, то делаем проверку boolean

ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.
мог бы хотябы оригинальный рендер ников показать как отменять, а то для некоторых это покажется не выполнимой задачей, а так ну такое себе
 
Назад
Сверху Снизу