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

Визуальная часть 3dESP Evaware v3 1.21.4

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Июн 2024
Сообщения
39
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
NameTagsRender:
Expand Collapse Copy
package killse.dest.client.features.modules.render.nametags;

import killse.dest.api.utils.render.display.BoxRender;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Vector2f;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.event.events.render.Render2DEvent;
import killse.dest.api.system.configs.FriendManager;
import killse.dest.api.system.interfaces.QuickImports;
import killse.dest.api.utils.color.UIColors;
import killse.dest.api.utils.math.MathUtil;
import killse.dest.api.utils.math.ProjectionUtil;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.utils.render.display.BlurRectRender;
import killse.dest.api.utils.render.fonts.Font;
import killse.dest.api.utils.render.fonts.Fonts;
import killse.dest.client.features.modules.render.InterfaceModule;

import java.awt.*;

public class NameTagsRender implements QuickImports {
    private final NameTagsModule module;
    private final NameTagsItems nameTagsItems;
    private final NameTagsPotions nameTagsPotions;

    public NameTagsRender(NameTagsModule module) {
        this.module = module;
        this.nameTagsItems = new NameTagsItems(module);
        this.nameTagsPotions = new NameTagsPotions(module);
    }

    public void onRender(Render2DEvent.Render2DEventData event) {
        for (Entity entity1 : mc.world.getEntities()) {
            if (entity1 instanceof PlayerEntity player) {
                if (module.entityFilter.isValid(player) ||
                        player == mc.player && module.targets.isEnabled("Self") && !mc.options.getPerspective().isFirstPerson()) {
                    renderTag(player, event.context(), event.partialTicks());
                }
            }
        }
    }

    private void renderTag(Entity entity, DrawContext context, float partialTicks) {
        double xI = MathHelper.lerp(partialTicks, entity.prevX, entity.getX());
        double yI = MathHelper.lerp(partialTicks, entity.prevY, entity.getY());
        double zI = MathHelper.lerp(partialTicks, entity.prevZ, entity.getZ());
        if (module.box3d.getValue()) {
            render3DBox(entity, xI, yI, zI);
        }
        Box box = entity.getBoundingBox().offset(xI - entity.getX(), yI - entity.getY(), zI - entity.getZ());

        float minX = Float.MAX_VALUE;
        float minY = Float.MAX_VALUE;
        float maxX = Float.MIN_VALUE;
        float maxY = Float.MIN_VALUE;

        for (int i = 0; i < 8; i++) {
            double cornerX = (i % 2 == 0) ? box.minX : box.maxX;
            double cornerY = ((i / 2) % 2 == 0) ? box.minY : box.maxY;
            double cornerZ = ((i / 4) % 2 == 0) ? box.minZ : box.maxZ;

            Vector2f projected = ProjectionUtil.project(new Vec3d(cornerX, cornerY, cornerZ));

            minX = Math.min(minX, projected.x);
            minY = Math.min(minY, projected.y);
            maxX = Math.max(maxX, projected.x);
            maxY = Math.max(maxY, projected.y);
        }

        float scale = module.scale.getValue();

        float x = (minX + maxX) / 2f;
        float y = minY - 20f * scale;

        boolean inRegion = x > 0 && x < mc.getWindow().getScaledWidth() || y > 0 && y < mc.getWindow().getScaledHeight();

        if (inRegion) {
            renderName(entity, x, y, context);

            if (!(entity instanceof PlayerEntity player)) return;

            if (module.information.isEnabled("Items")) {
                nameTagsItems.renderItems(player, x, y, context);
            }

            if (module.information.isEnabled("Potions")) {
                nameTagsPotions.renderPotions(player, maxX + 2f * scale, minY, context);
            }

            if (module.options.isEnabled("Special items")) {
                nameTagsItems.renderSpecialItems(player, x, maxY - 2f * scale, context);
            }
        }
    }

    private void renderName(Entity entity, float x, float y, DrawContext context) {
        MatrixStack matrixStack = context.getMatrices();
        Font font = Fonts.SF_MEDIUM;

        String name = entity.getName().getString();
        Text prefix = null;

        if (entity instanceof PlayerEntity player) {
            prefix = player.getScoreboardTeam() != null ? player.getScoreboardTeam().getPrefix() : null;
        }

        float scale = module.scale.getValue();
        float size = 8f * scale;
        float gap = 2f * scale;
        float nameWidth = font.getWidth(name, size);
        float prefixWidth = font.getWidth(prefix, size);

        boolean hasPrefix = prefixWidth > 0.5 && prefix != null;

        float spaceWidth = !hasPrefix ? 0 : font.getWidth(" ", size);
        float textWidth = prefixWidth + spaceWidth + nameWidth;

        x -= textWidth / 2f + gap;

        Color color = !FriendManager.getInstance().contains(entity.getName().getString()) ? module.color.getValue() : module.friendColor.getValue();

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, textWidth + gap * 2f, size + gap * 2f, scale, color, 1f - module.glassy.getValue());

        float textX = x + gap;
        float textY = y + gap;

        if (hasPrefix) {
            font.drawText(matrixStack, prefix, textX, textY, size);
            textX += prefixWidth + spaceWidth;
        }

        font.drawText(matrixStack, name, textX, textY, size, module.textColor.getValue());
    }

    private void render3DBox(Entity entity, double x, double y, double z) {
        Box box = entity.getBoundingBox().offset(x - entity.getX(), y - entity.getY(), z - entity.getZ());
        Color themeColor = UIColors.primary();
        float alpha = module.boxAlpha.getValue();

        Color fillColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), (int) (alpha * 255));
        Color outlineColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), 255);
        float x1 = (float) box.minX;
        float y1 = (float) box.minY;
        float z1 = (float) box.minZ;
        float x2 = (float) box.maxX;
        float y2 = (float) box.maxY;
        float z2 = (float) box.maxZ;

        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, fillColor, BoxRender.Render.FILL, 0.0f);
        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, outlineColor, BoxRender.Render.OUTLINE, 0.0f);
    }
}

если че цвет от темы и есть сила заливки
 

Вложения

  • 2026-01-19_15.09.29.png
    2026-01-19_15.09.29.png
    1.2 MB · Просмотры: 312
  • 2026-01-19_15.09.46.png
    2026-01-19_15.09.46.png
    1.1 MB · Просмотры: 310
NameTagsRender:
Expand Collapse Copy
package killse.dest.client.features.modules.render.nametags;

import killse.dest.api.utils.render.display.BoxRender;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Vector2f;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.event.events.render.Render2DEvent;
import killse.dest.api.system.configs.FriendManager;
import killse.dest.api.system.interfaces.QuickImports;
import killse.dest.api.utils.color.UIColors;
import killse.dest.api.utils.math.MathUtil;
import killse.dest.api.utils.math.ProjectionUtil;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.utils.render.display.BlurRectRender;
import killse.dest.api.utils.render.fonts.Font;
import killse.dest.api.utils.render.fonts.Fonts;
import killse.dest.client.features.modules.render.InterfaceModule;

import java.awt.*;

public class NameTagsRender implements QuickImports {
    private final NameTagsModule module;
    private final NameTagsItems nameTagsItems;
    private final NameTagsPotions nameTagsPotions;

    public NameTagsRender(NameTagsModule module) {
        this.module = module;
        this.nameTagsItems = new NameTagsItems(module);
        this.nameTagsPotions = new NameTagsPotions(module);
    }

    public void onRender(Render2DEvent.Render2DEventData event) {
        for (Entity entity1 : mc.world.getEntities()) {
            if (entity1 instanceof PlayerEntity player) {
                if (module.entityFilter.isValid(player) ||
                        player == mc.player && module.targets.isEnabled("Self") && !mc.options.getPerspective().isFirstPerson()) {
                    renderTag(player, event.context(), event.partialTicks());
                }
            }
        }
    }

    private void renderTag(Entity entity, DrawContext context, float partialTicks) {
        double xI = MathHelper.lerp(partialTicks, entity.prevX, entity.getX());
        double yI = MathHelper.lerp(partialTicks, entity.prevY, entity.getY());
        double zI = MathHelper.lerp(partialTicks, entity.prevZ, entity.getZ());
        if (module.box3d.getValue()) {
            render3DBox(entity, xI, yI, zI);
        }
        Box box = entity.getBoundingBox().offset(xI - entity.getX(), yI - entity.getY(), zI - entity.getZ());

        float minX = Float.MAX_VALUE;
        float minY = Float.MAX_VALUE;
        float maxX = Float.MIN_VALUE;
        float maxY = Float.MIN_VALUE;

        for (int i = 0; i < 8; i++) {
            double cornerX = (i % 2 == 0) ? box.minX : box.maxX;
            double cornerY = ((i / 2) % 2 == 0) ? box.minY : box.maxY;
            double cornerZ = ((i / 4) % 2 == 0) ? box.minZ : box.maxZ;

            Vector2f projected = ProjectionUtil.project(new Vec3d(cornerX, cornerY, cornerZ));

            minX = Math.min(minX, projected.x);
            minY = Math.min(minY, projected.y);
            maxX = Math.max(maxX, projected.x);
            maxY = Math.max(maxY, projected.y);
        }

        float scale = module.scale.getValue();

        float x = (minX + maxX) / 2f;
        float y = minY - 20f * scale;

        boolean inRegion = x > 0 && x < mc.getWindow().getScaledWidth() || y > 0 && y < mc.getWindow().getScaledHeight();

        if (inRegion) {
            renderName(entity, x, y, context);

            if (!(entity instanceof PlayerEntity player)) return;

            if (module.information.isEnabled("Items")) {
                nameTagsItems.renderItems(player, x, y, context);
            }

            if (module.information.isEnabled("Potions")) {
                nameTagsPotions.renderPotions(player, maxX + 2f * scale, minY, context);
            }

            if (module.options.isEnabled("Special items")) {
                nameTagsItems.renderSpecialItems(player, x, maxY - 2f * scale, context);
            }
        }
    }

    private void renderName(Entity entity, float x, float y, DrawContext context) {
        MatrixStack matrixStack = context.getMatrices();
        Font font = Fonts.SF_MEDIUM;

        String name = entity.getName().getString();
        Text prefix = null;

        if (entity instanceof PlayerEntity player) {
            prefix = player.getScoreboardTeam() != null ? player.getScoreboardTeam().getPrefix() : null;
        }

        float scale = module.scale.getValue();
        float size = 8f * scale;
        float gap = 2f * scale;
        float nameWidth = font.getWidth(name, size);
        float prefixWidth = font.getWidth(prefix, size);

        boolean hasPrefix = prefixWidth > 0.5 && prefix != null;

        float spaceWidth = !hasPrefix ? 0 : font.getWidth(" ", size);
        float textWidth = prefixWidth + spaceWidth + nameWidth;

        x -= textWidth / 2f + gap;

        Color color = !FriendManager.getInstance().contains(entity.getName().getString()) ? module.color.getValue() : module.friendColor.getValue();

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, textWidth + gap * 2f, size + gap * 2f, scale, color, 1f - module.glassy.getValue());

        float textX = x + gap;
        float textY = y + gap;

        if (hasPrefix) {
            font.drawText(matrixStack, prefix, textX, textY, size);
            textX += prefixWidth + spaceWidth;
        }

        font.drawText(matrixStack, name, textX, textY, size, module.textColor.getValue());
    }

    private void render3DBox(Entity entity, double x, double y, double z) {
        Box box = entity.getBoundingBox().offset(x - entity.getX(), y - entity.getY(), z - entity.getZ());
        Color themeColor = UIColors.primary();
        float alpha = module.boxAlpha.getValue();

        Color fillColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), (int) (alpha * 255));
        Color outlineColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), 255);
        float x1 = (float) box.minX;
        float y1 = (float) box.minY;
        float z1 = (float) box.minZ;
        float x2 = (float) box.maxX;
        float y2 = (float) box.maxY;
        float z2 = (float) box.maxZ;

        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, fillColor, BoxRender.Render.FILL, 0.0f);
        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, outlineColor, BoxRender.Render.OUTLINE, 0.0f);
    }
}

если че цвет от темы и есть сила заливки
говно
 
NameTagsRender:
Expand Collapse Copy
package killse.dest.client.features.modules.render.nametags;

import killse.dest.api.utils.render.display.BoxRender;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Vector2f;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.event.events.render.Render2DEvent;
import killse.dest.api.system.configs.FriendManager;
import killse.dest.api.system.interfaces.QuickImports;
import killse.dest.api.utils.color.UIColors;
import killse.dest.api.utils.math.MathUtil;
import killse.dest.api.utils.math.ProjectionUtil;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.utils.render.display.BlurRectRender;
import killse.dest.api.utils.render.fonts.Font;
import killse.dest.api.utils.render.fonts.Fonts;
import killse.dest.client.features.modules.render.InterfaceModule;

import java.awt.*;

public class NameTagsRender implements QuickImports {
    private final NameTagsModule module;
    private final NameTagsItems nameTagsItems;
    private final NameTagsPotions nameTagsPotions;

    public NameTagsRender(NameTagsModule module) {
        this.module = module;
        this.nameTagsItems = new NameTagsItems(module);
        this.nameTagsPotions = new NameTagsPotions(module);
    }

    public void onRender(Render2DEvent.Render2DEventData event) {
        for (Entity entity1 : mc.world.getEntities()) {
            if (entity1 instanceof PlayerEntity player) {
                if (module.entityFilter.isValid(player) ||
                        player == mc.player && module.targets.isEnabled("Self") && !mc.options.getPerspective().isFirstPerson()) {
                    renderTag(player, event.context(), event.partialTicks());
                }
            }
        }
    }

    private void renderTag(Entity entity, DrawContext context, float partialTicks) {
        double xI = MathHelper.lerp(partialTicks, entity.prevX, entity.getX());
        double yI = MathHelper.lerp(partialTicks, entity.prevY, entity.getY());
        double zI = MathHelper.lerp(partialTicks, entity.prevZ, entity.getZ());
        if (module.box3d.getValue()) {
            render3DBox(entity, xI, yI, zI);
        }
        Box box = entity.getBoundingBox().offset(xI - entity.getX(), yI - entity.getY(), zI - entity.getZ());

        float minX = Float.MAX_VALUE;
        float minY = Float.MAX_VALUE;
        float maxX = Float.MIN_VALUE;
        float maxY = Float.MIN_VALUE;

        for (int i = 0; i < 8; i++) {
            double cornerX = (i % 2 == 0) ? box.minX : box.maxX;
            double cornerY = ((i / 2) % 2 == 0) ? box.minY : box.maxY;
            double cornerZ = ((i / 4) % 2 == 0) ? box.minZ : box.maxZ;

            Vector2f projected = ProjectionUtil.project(new Vec3d(cornerX, cornerY, cornerZ));

            minX = Math.min(minX, projected.x);
            minY = Math.min(minY, projected.y);
            maxX = Math.max(maxX, projected.x);
            maxY = Math.max(maxY, projected.y);
        }

        float scale = module.scale.getValue();

        float x = (minX + maxX) / 2f;
        float y = minY - 20f * scale;

        boolean inRegion = x > 0 && x < mc.getWindow().getScaledWidth() || y > 0 && y < mc.getWindow().getScaledHeight();

        if (inRegion) {
            renderName(entity, x, y, context);

            if (!(entity instanceof PlayerEntity player)) return;

            if (module.information.isEnabled("Items")) {
                nameTagsItems.renderItems(player, x, y, context);
            }

            if (module.information.isEnabled("Potions")) {
                nameTagsPotions.renderPotions(player, maxX + 2f * scale, minY, context);
            }

            if (module.options.isEnabled("Special items")) {
                nameTagsItems.renderSpecialItems(player, x, maxY - 2f * scale, context);
            }
        }
    }

    private void renderName(Entity entity, float x, float y, DrawContext context) {
        MatrixStack matrixStack = context.getMatrices();
        Font font = Fonts.SF_MEDIUM;

        String name = entity.getName().getString();
        Text prefix = null;

        if (entity instanceof PlayerEntity player) {
            prefix = player.getScoreboardTeam() != null ? player.getScoreboardTeam().getPrefix() : null;
        }

        float scale = module.scale.getValue();
        float size = 8f * scale;
        float gap = 2f * scale;
        float nameWidth = font.getWidth(name, size);
        float prefixWidth = font.getWidth(prefix, size);

        boolean hasPrefix = prefixWidth > 0.5 && prefix != null;

        float spaceWidth = !hasPrefix ? 0 : font.getWidth(" ", size);
        float textWidth = prefixWidth + spaceWidth + nameWidth;

        x -= textWidth / 2f + gap;

        Color color = !FriendManager.getInstance().contains(entity.getName().getString()) ? module.color.getValue() : module.friendColor.getValue();

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, textWidth + gap * 2f, size + gap * 2f, scale, color, 1f - module.glassy.getValue());

        float textX = x + gap;
        float textY = y + gap;

        if (hasPrefix) {
            font.drawText(matrixStack, prefix, textX, textY, size);
            textX += prefixWidth + spaceWidth;
        }

        font.drawText(matrixStack, name, textX, textY, size, module.textColor.getValue());
    }

    private void render3DBox(Entity entity, double x, double y, double z) {
        Box box = entity.getBoundingBox().offset(x - entity.getX(), y - entity.getY(), z - entity.getZ());
        Color themeColor = UIColors.primary();
        float alpha = module.boxAlpha.getValue();

        Color fillColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), (int) (alpha * 255));
        Color outlineColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), 255);
        float x1 = (float) box.minX;
        float y1 = (float) box.minY;
        float z1 = (float) box.minZ;
        float x2 = (float) box.maxX;
        float y2 = (float) box.maxY;
        float z2 = (float) box.maxZ;

        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, fillColor, BoxRender.Render.FILL, 0.0f);
        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, outlineColor, BoxRender.Render.OUTLINE, 0.0f);
    }
}

если че цвет от темы и есть сила заливки
годно
 
NameTagsRender:
Expand Collapse Copy
package killse.dest.client.features.modules.render.nametags;

import killse.dest.api.utils.render.display.BoxRender;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Vector2f;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.event.events.render.Render2DEvent;
import killse.dest.api.system.configs.FriendManager;
import killse.dest.api.system.interfaces.QuickImports;
import killse.dest.api.utils.color.UIColors;
import killse.dest.api.utils.math.MathUtil;
import killse.dest.api.utils.math.ProjectionUtil;
import killse.dest.api.utils.render.RenderUtil;
import killse.dest.api.utils.render.display.BlurRectRender;
import killse.dest.api.utils.render.fonts.Font;
import killse.dest.api.utils.render.fonts.Fonts;
import killse.dest.client.features.modules.render.InterfaceModule;

import java.awt.*;

public class NameTagsRender implements QuickImports {
    private final NameTagsModule module;
    private final NameTagsItems nameTagsItems;
    private final NameTagsPotions nameTagsPotions;

    public NameTagsRender(NameTagsModule module) {
        this.module = module;
        this.nameTagsItems = new NameTagsItems(module);
        this.nameTagsPotions = new NameTagsPotions(module);
    }

    public void onRender(Render2DEvent.Render2DEventData event) {
        for (Entity entity1 : mc.world.getEntities()) {
            if (entity1 instanceof PlayerEntity player) {
                if (module.entityFilter.isValid(player) ||
                        player == mc.player && module.targets.isEnabled("Self") && !mc.options.getPerspective().isFirstPerson()) {
                    renderTag(player, event.context(), event.partialTicks());
                }
            }
        }
    }

    private void renderTag(Entity entity, DrawContext context, float partialTicks) {
        double xI = MathHelper.lerp(partialTicks, entity.prevX, entity.getX());
        double yI = MathHelper.lerp(partialTicks, entity.prevY, entity.getY());
        double zI = MathHelper.lerp(partialTicks, entity.prevZ, entity.getZ());
        if (module.box3d.getValue()) {
            render3DBox(entity, xI, yI, zI);
        }
        Box box = entity.getBoundingBox().offset(xI - entity.getX(), yI - entity.getY(), zI - entity.getZ());

        float minX = Float.MAX_VALUE;
        float minY = Float.MAX_VALUE;
        float maxX = Float.MIN_VALUE;
        float maxY = Float.MIN_VALUE;

        for (int i = 0; i < 8; i++) {
            double cornerX = (i % 2 == 0) ? box.minX : box.maxX;
            double cornerY = ((i / 2) % 2 == 0) ? box.minY : box.maxY;
            double cornerZ = ((i / 4) % 2 == 0) ? box.minZ : box.maxZ;

            Vector2f projected = ProjectionUtil.project(new Vec3d(cornerX, cornerY, cornerZ));

            minX = Math.min(minX, projected.x);
            minY = Math.min(minY, projected.y);
            maxX = Math.max(maxX, projected.x);
            maxY = Math.max(maxY, projected.y);
        }

        float scale = module.scale.getValue();

        float x = (minX + maxX) / 2f;
        float y = minY - 20f * scale;

        boolean inRegion = x > 0 && x < mc.getWindow().getScaledWidth() || y > 0 && y < mc.getWindow().getScaledHeight();

        if (inRegion) {
            renderName(entity, x, y, context);

            if (!(entity instanceof PlayerEntity player)) return;

            if (module.information.isEnabled("Items")) {
                nameTagsItems.renderItems(player, x, y, context);
            }

            if (module.information.isEnabled("Potions")) {
                nameTagsPotions.renderPotions(player, maxX + 2f * scale, minY, context);
            }

            if (module.options.isEnabled("Special items")) {
                nameTagsItems.renderSpecialItems(player, x, maxY - 2f * scale, context);
            }
        }
    }

    private void renderName(Entity entity, float x, float y, DrawContext context) {
        MatrixStack matrixStack = context.getMatrices();
        Font font = Fonts.SF_MEDIUM;

        String name = entity.getName().getString();
        Text prefix = null;

        if (entity instanceof PlayerEntity player) {
            prefix = player.getScoreboardTeam() != null ? player.getScoreboardTeam().getPrefix() : null;
        }

        float scale = module.scale.getValue();
        float size = 8f * scale;
        float gap = 2f * scale;
        float nameWidth = font.getWidth(name, size);
        float prefixWidth = font.getWidth(prefix, size);

        boolean hasPrefix = prefixWidth > 0.5 && prefix != null;

        float spaceWidth = !hasPrefix ? 0 : font.getWidth(" ", size);
        float textWidth = prefixWidth + spaceWidth + nameWidth;

        x -= textWidth / 2f + gap;

        Color color = !FriendManager.getInstance().contains(entity.getName().getString()) ? module.color.getValue() : module.friendColor.getValue();

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, textWidth + gap * 2f, size + gap * 2f, scale, color, 1f - module.glassy.getValue());

        float textX = x + gap;
        float textY = y + gap;

        if (hasPrefix) {
            font.drawText(matrixStack, prefix, textX, textY, size);
            textX += prefixWidth + spaceWidth;
        }

        font.drawText(matrixStack, name, textX, textY, size, module.textColor.getValue());
    }

    private void render3DBox(Entity entity, double x, double y, double z) {
        Box box = entity.getBoundingBox().offset(x - entity.getX(), y - entity.getY(), z - entity.getZ());
        Color themeColor = UIColors.primary();
        float alpha = module.boxAlpha.getValue();

        Color fillColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), (int) (alpha * 255));
        Color outlineColor = new Color(themeColor.getRed(), themeColor.getGreen(), themeColor.getBlue(), 255);
        float x1 = (float) box.minX;
        float y1 = (float) box.minY;
        float z1 = (float) box.minZ;
        float x2 = (float) box.maxX;
        float y2 = (float) box.maxY;
        float z2 = (float) box.maxZ;

        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, fillColor, BoxRender.Render.FILL, 0.0f);
        RenderUtil.BOX.drawBox(x1, y1, z1, x2, y2, z2, 1.5f, outlineColor, BoxRender.Render.OUTLINE, 0.0f);
    }
}

если че цвет от темы и есть сила заливки
Боже пастеры до етой хуйни добрались уже
 
Назад
Сверху Снизу