Розыгрыш Premium и Уникальной юзергруппы на форуме! Перейти

Визуальная часть TargetHud Rich/Zenith

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Фев 2024
Сообщения
8
Реакции
0
Выберите загрузчик игры
  1. Fabric
Переделал ТаргейтХуд из этого поста (click) тк он выглядит криво

ss:
1767160728054.png


таргейт худ полностью под Rich/Zenith

TargetHud:
Expand Collapse Copy
package fun.helsing.display.hud;

import fun.helsing.utils.client.managers.api.draggable.AbstractDraggable;
import fun.helsing.features.impl.combat.Aura;
import fun.helsing.features.impl.render.Hud;
import fun.helsing.common.animation.Animation;
import fun.helsing.common.animation.Direction;
import fun.helsing.common.animation.implement.Decelerate;
import fun.helsing.utils.math.calc.Calculate;
import fun.helsing.utils.display.font.FontRenderer;
import fun.helsing.utils.display.font.Fonts;
import fun.helsing.utils.display.shape.ShapeProperties;
import fun.helsing.utils.display.color.ColorAssist;
import fun.helsing.utils.interactions.interact.PlayerInteractionHelper;
import fun.helsing.utils.display.geometry.Render2D;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

public class TargetHud extends AbstractDraggable {

    private final Animation scaleAnimation = new Decelerate().setMs(400).setValue(1);

    private final Animation faceAlphaAnimation = new Decelerate().setMs(125).setValue(1);
    private LivingEntity lastTarget;
    private float health;

    public TargetHud() {
        super("Target Hud", 10, 40, 110, 80, true);
    }

    @Override
    public boolean visible() {

        return scaleAnimation.isDirection(Direction.FORWARDS);
    }

    @Override
    public void tick() {
        LivingEntity auraTarget = Aura.getInstance().getTarget();
        boolean inChat = PlayerInteractionHelper.isChat(mc.currentScreen);

        if (auraTarget != null || inChat) {
            showTargetHud();
            faceAlphaAnimation.setDirection(Direction.FORWARDS);

            if (auraTarget != null) {
                lastTarget = auraTarget;
            } else if (inChat) {
                lastTarget = mc.player;
            }
        } else {

            hideTargetHud();
            faceAlphaAnimation.setDirection(Direction.BACKWARDS);
        }
    }

    private void showTargetHud() {
        if (scaleAnimation.getDirection() != Direction.FORWARDS) {
            scaleAnimation.setDirection(Direction.FORWARDS);
        }
    }


    private void hideTargetHud() {
        if (scaleAnimation.getDirection() != Direction.BACKWARDS) {
            scaleAnimation.setDirection(Direction.BACKWARDS);
        }
    }

    @Override
    public void drawDraggable(DrawContext context) {

        if (!Hud.getInstance().interfaceSettings.isSelected("Target Hud") || !Hud.getInstance().state) {
            return;
        }

        if (lastTarget == null) return;
        MatrixStack matrix = context.getMatrices();
        float scaleAnim = scaleAnimation.getOutput().floatValue();
        if (scaleAnim <= 0) return;


        Calculate.setAlpha(scaleAnim, () -> {

            float offsetX = (1 - scaleAnim) * 10;
            float offsetY = (1 - scaleAnim) * 5;

            matrix.push();
            matrix.translate(offsetX, offsetY, 0);

            drawMainContent(context, matrix);

            matrix.pop();
        });
    }

    private void drawMainContent(DrawContext context, MatrixStack matrix) {
        float localScale = 1.2F;
        float centerX = getX() + getWidth() / 2.0F;
        float centerY = getY() + getHeight() / 2.0F;

        Calculate.scale(matrix, centerX, centerY, localScale, localScale, () -> {
            float headerHeight = 12.2F;
            float headerPaddingTop = 2.3F;
            float gap = 0.8F;
            float headerWidth = 54.0F;

            float lowerSectionY = getY() + headerHeight + headerPaddingTop + gap;
            float headerX = getX() + (getWidth() - headerWidth) / 2.0F;

            blur.render(ShapeProperties.create(matrix, headerX, getY() + headerPaddingTop, headerWidth, headerHeight)
                    .round(1.5f, 0f, 1.5f, 0f).quality(12)
                    .color(new Color(0, 0, 0, 150).getRGB())
                    .build());

            rectangle.render(ShapeProperties.create(matrix, headerX, getY() + headerPaddingTop, headerWidth, headerHeight)
                    .round(3.0f, 3.0f, 3.0f, 3.0f)
                    .thickness(0.1f)
                    .outlineColor(new Color(33, 33, 33, 255).getRGB())
                    .color(
                            new Color(18, 19, 20, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(18, 19, 20, 75).getRGB())
                    .build());

            blur.render(ShapeProperties.create(matrix, getX() + 1F, lowerSectionY, getWidth() - 2F, 43.6F)
                    .round(1.5f, 1.5f, 1.5f, 1.5f).quality(12)
                    .color(new Color(0, 0, 0, 150).getRGB())
                    .build());

            rectangle.render(ShapeProperties.create(matrix, getX() + 1F, lowerSectionY, getWidth() - 2F, 42)
                    .round(1.5f, 1.5f, 1.5f, 1.5f)
                    .thickness(0.1f)
                    .outlineColor(new Color(33, 33, 33, 255).getRGB())
                    .color(
                            new Color(18, 19, 20, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(18, 19, 20, 75).getRGB())
                    .build());

            drawInfo(context, matrix, headerPaddingTop);

            float contentShift = 0.0F;
            drawFace(context);
            drawLeftItems(context, matrix, contentShift);
            drawRightItems(context, matrix, contentShift);

            drawBottomSection(context, matrix);
        });
    }

    private void drawFace(DrawContext context) {
        EntityRenderer<? super LivingEntity, ?> baseRenderer = mc.getEntityRenderDispatcher().getRenderer(lastTarget);
        if (!(baseRenderer instanceof LivingEntityRenderer<?, ?, ?>)) return;

        @SuppressWarnings("unchecked")
        LivingEntityRenderer<LivingEntity, LivingEntityRenderState, ?> renderer =
                (LivingEntityRenderer<LivingEntity, LivingEntityRenderState, ?>) baseRenderer;
        LivingEntityRenderState state = renderer.getAndUpdateRenderState(lastTarget, tickCounter.getTickDelta(false));
        Identifier textureLocation = renderer.getTexture(state);

        float headSize = 27;
        float headX = getX() + (getWidth() - headSize) / 2;
        float headY = getY() + 15 + 4;

        float faceAlpha = faceAlphaAnimation.getOutput().floatValue();
        Calculate.setAlpha(faceAlpha, () -> {
            Render2D.drawTexture(context, textureLocation, headX, headY,
                    headSize, 3, 8, 8, 64, 0xFFFFFFFF,
                    ColorAssist.multRed(-1, 1 + lastTarget.hurtTime / 4F));
        });
    }

    private void drawInfo(DrawContext context, MatrixStack matrix, float paddingTop) {
        FontRenderer font = Fonts.getSize(12);
        String name = lastTarget.getName().getString();
        float nameX = getX() + (getWidth() / 2F) - (font.getStringWidth(name) / 2F);
        font.drawString(matrix, name, nameX, getY() + paddingTop + 4.7f, 0xFFFFFFFF);
    }

    private void drawBottomSection(DrawContext context, MatrixStack matrix) {
        float hp = PlayerInteractionHelper.getHealth(lastTarget);
        float maxHp = lastTarget.getMaxHealth();

        float barWidth = getWidth() - 10;
        float barHeight = 5;
        float barX = getX() + 5.7f;
        float barY = getY() + 50;

        float targetHealth = (hp / maxHp) * barWidth;
        health = Calculate.interpolateSmooth(1, health, targetHealth);

        rectangle.render(ShapeProperties.create(matrix, barX, barY, barWidth, barHeight).round(1.0F).color(0x44000000).build());
        rectangle.render(ShapeProperties.create(matrix, barX, barY, MathHelper.clamp(health, 0, barWidth), barHeight).round(1.0F).color(0xFFFFFFFF).build());

        FontRenderer smallFont = Fonts.getSize(10);
        float infoY = barY + barHeight + 9;
        String hpString = String.format("%.1f HP", hp + lastTarget.getAbsorptionAmount());

        drawTextWithOutline(matrix, smallFont, hpString, barX, infoY, 0xFFFFFFFF);

        boolean winning = mc.player.getHealth() >= lastTarget.getHealth();
        String status = winning ? "WIN" : "LOSE";
        int statusColor = winning ? 0xFF55FF55 : 0xFFFF5555;

        float statusX = (getX() + getWidth()) - smallFont.getStringWidth(status) - 5;
        drawTextWithOutline(matrix, smallFont, status, statusX, infoY, statusColor);
    }

    private void drawTextWithOutline(MatrixStack matrix, FontRenderer font, String text, float x, float y, int color) {
        font.drawString(matrix, text, x - 0.5f, y, 0xFF000000);
        font.drawString(matrix, text, x + 0.5f, y, 0xFF000000);
        font.drawString(matrix, text, x, y - 0.5f, 0xFF000000);
        font.drawString(matrix, text, x, y + 0.5f, 0xFF000000);
        font.drawString(matrix, text, x, y, color);
    }

    private void drawLeftItems(DrawContext context, MatrixStack matrix, float shift) {
        List<ItemStack> armor = new ArrayList<>();
        lastTarget.getArmorItems().forEach(armor::add);
        float bgSize = 13, spacing = 14;

        float startX = getX() + 5, startY = getY() + 19 + shift;

        for (int i = 0; i < 4; i++) {
            float x = startX + (i % 2) * spacing, y = startY + (i / 2) * spacing;
            blur.render(ShapeProperties.create(matrix, x, y, bgSize, bgSize).round(1.5F).color(0x66000000).build());
            if (i < armor.size()) {
                ItemStack stack = armor.get(armor.size() - 1 - i);
                if (!stack.isEmpty()) Render2D.defaultDrawStack(context, stack, x, y, false, true, 0.7F);
            }
        }
    }

    private void drawRightItems(DrawContext context, MatrixStack matrix, float shift) {
        List<ItemStack> items = new ArrayList<>();
        if (!lastTarget.getMainHandStack().isEmpty()) items.add(lastTarget.getMainHandStack());
        if (!lastTarget.getOffHandStack().isEmpty()) items.add(lastTarget.getOffHandStack());

        float bgSize = 13, spacing = 14;
        float startX = getX() + getWidth() - (spacing * 2) - 4, startY = getY() + 19 + shift;

        for (int i = 0; i < 4; i++) {
            float x = startX + (i % 2) * spacing, y = startY + (i / 2) * spacing;
            blur.render(ShapeProperties.create(matrix, x, y, bgSize, bgSize).round(1.5F).color(0x66000000).build());
            if (i < items.size()) {
                Render2D.defaultDrawStack(context, items.get(i), x, y, false, true, 0.7F);
            }
        }
    }
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
у меня ломка, нахуя катлин впихивать
а так таргет худ пиздат
 
Переделал ТаргейтХуд из этого поста (click) тк он выглядит криво

ss:
Посмотреть вложение 323350

таргейт худ полностью под Rich/Zenith

TargetHud:
Expand Collapse Copy
package fun.helsing.display.hud;

import fun.helsing.utils.client.managers.api.draggable.AbstractDraggable;
import fun.helsing.features.impl.combat.Aura;
import fun.helsing.features.impl.render.Hud;
import fun.helsing.common.animation.Animation;
import fun.helsing.common.animation.Direction;
import fun.helsing.common.animation.implement.Decelerate;
import fun.helsing.utils.math.calc.Calculate;
import fun.helsing.utils.display.font.FontRenderer;
import fun.helsing.utils.display.font.Fonts;
import fun.helsing.utils.display.shape.ShapeProperties;
import fun.helsing.utils.display.color.ColorAssist;
import fun.helsing.utils.interactions.interact.PlayerInteractionHelper;
import fun.helsing.utils.display.geometry.Render2D;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

public class TargetHud extends AbstractDraggable {

    private final Animation scaleAnimation = new Decelerate().setMs(400).setValue(1);

    private final Animation faceAlphaAnimation = new Decelerate().setMs(125).setValue(1);
    private LivingEntity lastTarget;
    private float health;

    public TargetHud() {
        super("Target Hud", 10, 40, 110, 80, true);
    }

    @Override
    public boolean visible() {

        return scaleAnimation.isDirection(Direction.FORWARDS);
    }

    @Override
    public void tick() {
        LivingEntity auraTarget = Aura.getInstance().getTarget();
        boolean inChat = PlayerInteractionHelper.isChat(mc.currentScreen);

        if (auraTarget != null || inChat) {
            showTargetHud();
            faceAlphaAnimation.setDirection(Direction.FORWARDS);

            if (auraTarget != null) {
                lastTarget = auraTarget;
            } else if (inChat) {
                lastTarget = mc.player;
            }
        } else {

            hideTargetHud();
            faceAlphaAnimation.setDirection(Direction.BACKWARDS);
        }
    }

    private void showTargetHud() {
        if (scaleAnimation.getDirection() != Direction.FORWARDS) {
            scaleAnimation.setDirection(Direction.FORWARDS);
        }
    }


    private void hideTargetHud() {
        if (scaleAnimation.getDirection() != Direction.BACKWARDS) {
            scaleAnimation.setDirection(Direction.BACKWARDS);
        }
    }

    @Override
    public void drawDraggable(DrawContext context) {

        if (!Hud.getInstance().interfaceSettings.isSelected("Target Hud") || !Hud.getInstance().state) {
            return;
        }

        if (lastTarget == null) return;
        MatrixStack matrix = context.getMatrices();
        float scaleAnim = scaleAnimation.getOutput().floatValue();
        if (scaleAnim <= 0) return;


        Calculate.setAlpha(scaleAnim, () -> {

            float offsetX = (1 - scaleAnim) * 10;
            float offsetY = (1 - scaleAnim) * 5;

            matrix.push();
            matrix.translate(offsetX, offsetY, 0);

            drawMainContent(context, matrix);

            matrix.pop();
        });
    }

    private void drawMainContent(DrawContext context, MatrixStack matrix) {
        float localScale = 1.2F;
        float centerX = getX() + getWidth() / 2.0F;
        float centerY = getY() + getHeight() / 2.0F;

        Calculate.scale(matrix, centerX, centerY, localScale, localScale, () -> {
            float headerHeight = 12.2F;
            float headerPaddingTop = 2.3F;
            float gap = 0.8F;
            float headerWidth = 54.0F;

            float lowerSectionY = getY() + headerHeight + headerPaddingTop + gap;
            float headerX = getX() + (getWidth() - headerWidth) / 2.0F;

            blur.render(ShapeProperties.create(matrix, headerX, getY() + headerPaddingTop, headerWidth, headerHeight)
                    .round(1.5f, 0f, 1.5f, 0f).quality(12)
                    .color(new Color(0, 0, 0, 150).getRGB())
                    .build());

            rectangle.render(ShapeProperties.create(matrix, headerX, getY() + headerPaddingTop, headerWidth, headerHeight)
                    .round(3.0f, 3.0f, 3.0f, 3.0f)
                    .thickness(0.1f)
                    .outlineColor(new Color(33, 33, 33, 255).getRGB())
                    .color(
                            new Color(18, 19, 20, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(18, 19, 20, 75).getRGB())
                    .build());

            blur.render(ShapeProperties.create(matrix, getX() + 1F, lowerSectionY, getWidth() - 2F, 43.6F)
                    .round(1.5f, 1.5f, 1.5f, 1.5f).quality(12)
                    .color(new Color(0, 0, 0, 150).getRGB())
                    .build());

            rectangle.render(ShapeProperties.create(matrix, getX() + 1F, lowerSectionY, getWidth() - 2F, 42)
                    .round(1.5f, 1.5f, 1.5f, 1.5f)
                    .thickness(0.1f)
                    .outlineColor(new Color(33, 33, 33, 255).getRGB())
                    .color(
                            new Color(18, 19, 20, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(0, 2, 5, 75).getRGB(),
                            new Color(18, 19, 20, 75).getRGB())
                    .build());

            drawInfo(context, matrix, headerPaddingTop);

            float contentShift = 0.0F;
            drawFace(context);
            drawLeftItems(context, matrix, contentShift);
            drawRightItems(context, matrix, contentShift);

            drawBottomSection(context, matrix);
        });
    }

    private void drawFace(DrawContext context) {
        EntityRenderer<? super LivingEntity, ?> baseRenderer = mc.getEntityRenderDispatcher().getRenderer(lastTarget);
        if (!(baseRenderer instanceof LivingEntityRenderer<?, ?, ?>)) return;

        @SuppressWarnings("unchecked")
        LivingEntityRenderer<LivingEntity, LivingEntityRenderState, ?> renderer =
                (LivingEntityRenderer<LivingEntity, LivingEntityRenderState, ?>) baseRenderer;
        LivingEntityRenderState state = renderer.getAndUpdateRenderState(lastTarget, tickCounter.getTickDelta(false));
        Identifier textureLocation = renderer.getTexture(state);

        float headSize = 27;
        float headX = getX() + (getWidth() - headSize) / 2;
        float headY = getY() + 15 + 4;

        float faceAlpha = faceAlphaAnimation.getOutput().floatValue();
        Calculate.setAlpha(faceAlpha, () -> {
            Render2D.drawTexture(context, textureLocation, headX, headY,
                    headSize, 3, 8, 8, 64, 0xFFFFFFFF,
                    ColorAssist.multRed(-1, 1 + lastTarget.hurtTime / 4F));
        });
    }

    private void drawInfo(DrawContext context, MatrixStack matrix, float paddingTop) {
        FontRenderer font = Fonts.getSize(12);
        String name = lastTarget.getName().getString();
        float nameX = getX() + (getWidth() / 2F) - (font.getStringWidth(name) / 2F);
        font.drawString(matrix, name, nameX, getY() + paddingTop + 4.7f, 0xFFFFFFFF);
    }

    private void drawBottomSection(DrawContext context, MatrixStack matrix) {
        float hp = PlayerInteractionHelper.getHealth(lastTarget);
        float maxHp = lastTarget.getMaxHealth();

        float barWidth = getWidth() - 10;
        float barHeight = 5;
        float barX = getX() + 5.7f;
        float barY = getY() + 50;

        float targetHealth = (hp / maxHp) * barWidth;
        health = Calculate.interpolateSmooth(1, health, targetHealth);

        rectangle.render(ShapeProperties.create(matrix, barX, barY, barWidth, barHeight).round(1.0F).color(0x44000000).build());
        rectangle.render(ShapeProperties.create(matrix, barX, barY, MathHelper.clamp(health, 0, barWidth), barHeight).round(1.0F).color(0xFFFFFFFF).build());

        FontRenderer smallFont = Fonts.getSize(10);
        float infoY = barY + barHeight + 9;
        String hpString = String.format("%.1f HP", hp + lastTarget.getAbsorptionAmount());

        drawTextWithOutline(matrix, smallFont, hpString, barX, infoY, 0xFFFFFFFF);

        boolean winning = mc.player.getHealth() >= lastTarget.getHealth();
        String status = winning ? "WIN" : "LOSE";
        int statusColor = winning ? 0xFF55FF55 : 0xFFFF5555;

        float statusX = (getX() + getWidth()) - smallFont.getStringWidth(status) - 5;
        drawTextWithOutline(matrix, smallFont, status, statusX, infoY, statusColor);
    }

    private void drawTextWithOutline(MatrixStack matrix, FontRenderer font, String text, float x, float y, int color) {
        font.drawString(matrix, text, x - 0.5f, y, 0xFF000000);
        font.drawString(matrix, text, x + 0.5f, y, 0xFF000000);
        font.drawString(matrix, text, x, y - 0.5f, 0xFF000000);
        font.drawString(matrix, text, x, y + 0.5f, 0xFF000000);
        font.drawString(matrix, text, x, y, color);
    }

    private void drawLeftItems(DrawContext context, MatrixStack matrix, float shift) {
        List<ItemStack> armor = new ArrayList<>();
        lastTarget.getArmorItems().forEach(armor::add);
        float bgSize = 13, spacing = 14;

        float startX = getX() + 5, startY = getY() + 19 + shift;

        for (int i = 0; i < 4; i++) {
            float x = startX + (i % 2) * spacing, y = startY + (i / 2) * spacing;
            blur.render(ShapeProperties.create(matrix, x, y, bgSize, bgSize).round(1.5F).color(0x66000000).build());
            if (i < armor.size()) {
                ItemStack stack = armor.get(armor.size() - 1 - i);
                if (!stack.isEmpty()) Render2D.defaultDrawStack(context, stack, x, y, false, true, 0.7F);
            }
        }
    }

    private void drawRightItems(DrawContext context, MatrixStack matrix, float shift) {
        List<ItemStack> items = new ArrayList<>();
        if (!lastTarget.getMainHandStack().isEmpty()) items.add(lastTarget.getMainHandStack());
        if (!lastTarget.getOffHandStack().isEmpty()) items.add(lastTarget.getOffHandStack());

        float bgSize = 13, spacing = 14;
        float startX = getX() + getWidth() - (spacing * 2) - 4, startY = getY() + 19 + shift;

        for (int i = 0; i < 4; i++) {
            float x = startX + (i % 2) * spacing, y = startY + (i / 2) * spacing;
            blur.render(ShapeProperties.create(matrix, x, y, bgSize, bgSize).round(1.5F).color(0x66000000).build());
            if (i < items.size()) {
                Render2D.defaultDrawStack(context, items.get(i), x, y, false, true, 0.7F);
            }
        }
    }
}
нахуя
 
Назад
Сверху Снизу