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

Визуальная часть TargetHud Skid Energy / Evaware V3

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Июн 2025
Сообщения
110
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Привет югейм, скиднул тх энерджи
Вроде 5 пост сильно не хуярьте вроде вышло вполне нормально, иконку найдете и вставите сами это вполне не трудно думаю

SS:
1776261579740.png
1776261614100.png



шедеврокод:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;

import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import sweetie.evaware.api.utils.animation.AnimationUtil;
import sweetie.evaware.api.utils.color.ColorUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Fonts;
import sweetie.evaware.api.system.files.FileUtil;
import sweetie.evaware.client.features.modules.combat.AuraModule;
import sweetie.evaware.client.ui.widget.Widget;

import java.awt.*;

public class TargetInfoNewWidget extends Widget {

    private static final Identifier HEART = FileUtil.getImage("particles/heart2");

    @Override public String getName() { return "Target info"; }
    public TargetInfoNewWidget() { super(30f, 30f); }

    private final AnimationUtil showAnimation = new AnimationUtil();
    private float healthAnimation = 0f;
    private LivingEntity lastTarget;

    @Override
    public void render(MatrixStack matrixStack) {
        showAnimation.update();
        showAnimation.run(getTarget() != null ? 1.0 : 0.0, getDuration(), getEasing());

        LivingEntity fresh = getTarget();
        if (fresh != null) lastTarget = fresh;
        if (showAnimation.getValue() <= 0.0 || lastTarget == null) return;

        float anim     = (float) showAnimation.getValue();
        float targetHp = lastTarget.getHealth();
        float maxHp    = Math.max(lastTarget.getMaxHealth(), 1f);

        healthAnimation = MathUtil.interpolate(healthAnimation,
                MathHelper.clamp(targetHp / maxHp, 0f, 1f), 0.1f);

        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float radius   = scaled(7f);
        float padH     = scaled(4f);
        float padV     = scaled(4f);
        float avatarSz = scaled(22f);
        float nameSize = scaled(6.5f);
        float hpSize   = scaled(6f);
        float textGap  = scaled(2.5f);
        float spacing  = scaled(3f);
        float barH     = scaled(5f);
        float extraW   = scaled(12f);

        String name   = lastTarget.getName().getString();
        String hpText = String.format("%.1f", targetHp);
        float heartSz = hpSize;

        float absorptionAmount = lastTarget.getAbsorptionAmount();
        boolean hasAbsorption  = absorptionAmount > 0;
        String absorptionText  = hasAbsorption ? String.format("(%.1f)", absorptionAmount) : "";

        float nameW      = Fonts.SF_BOLD.getWidth(name, nameSize);
        float hpLineW    = heartSz + scaled(2f) + Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize)
                + (hasAbsorption ? scaled(3f) + Fonts.SF_SEMIBOLD.getWidth(absorptionText, hpSize) : 0);
        float textBlockW = Math.max(nameW, hpLineW);

        float totalW = padH + avatarSz + padH + textBlockW + padH + extraW;
        float totalH = padV + avatarSz + spacing + barH + padV;

        int a = (int)(255 * anim);

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, totalW, totalH, radius,
                new Color(20, 20, 30, (int)(230 * anim)));

        float avatarX = x + padH;
        float avatarY = y + padV;

        if (lastTarget instanceof PlayerEntity player) {
            RenderUtil.TEXTURE_RECT.drawHead(matrixStack, player,
                    avatarX, avatarY, avatarSz, avatarSz,
                    1f, scaled(5f), ColorUtil.setAlpha(Color.WHITE, a));
        } else {
            RenderUtil.RECT.draw(matrixStack, avatarX, avatarY, avatarSz, avatarSz,
                    scaled(5f), new Color(60, 60, 60, a));
            getSemiBoldFont().drawCenteredText(matrixStack, "?",
                    avatarX + avatarSz / 2f,
                    avatarY + avatarSz / 2f - nameSize / 2f,
                    nameSize, UIColors.textColor(a));
        }

        float tx         = avatarX + avatarSz + scaled(3f);
        float textTotalH = nameSize + textGap + hpSize;
        float textStartY = avatarY + (avatarSz - textTotalH) / 2f;

        Fonts.SF_BOLD.drawText(matrixStack, name, tx, textStartY, nameSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        float hpY = textStartY + nameSize + textGap;
        try {
            RenderSystem.enableBlend();
            RenderSystem.defaultBlendFunc();
            int texId = mc.getTextureManager().getTexture(HEART).getGlId();
            RenderUtil.TEXTURE_RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a), 0, 0, 1, 1, texId);
        } catch (Exception e) {
            RenderUtil.RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a));
        }
        Fonts.SF_SEMIBOLD.drawText(matrixStack, hpText,
                tx + heartSz + scaled(2f), hpY, hpSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        if (hasAbsorption) {
            float hpTextW = Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize);
            Fonts.SF_SEMIBOLD.drawText(matrixStack, " " + absorptionText,
                    tx + heartSz + scaled(2f) + hpTextW, hpY, hpSize,
                    new Color(255, 210, 50, a));
        }

        float barX = x + padH;
        float barY = y + padV + avatarSz + spacing;
        float barW = totalW - padH * 2f;
        float barR = barH / 2f;

        RenderUtil.RECT.draw(matrixStack, barX, barY, barW, barH, barR,
                new Color(0, 0, 0, (int)(100 * anim)));

        float fill = barW * healthAnimation;

        if (fill > 0) {
            RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, fill, barH, barR,
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a),
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a));
        }

        if (hasAbsorption) {
            float absorptionFill = Math.min(barW * MathHelper.clamp(absorptionAmount / maxHp, 0f, 1f), barW);
            if (absorptionFill > 0) {
                RenderUtil.RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(30, 20, 0, (int)(255 * anim)));
                RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)),
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)));
            }
        }

        getDraggable().setWidth(totalW);
        getDraggable().setHeight(totalH);
    }

    private LivingEntity getTarget() {
        AuraModule aura = AuraModule.getInstance();
        if (aura.isEnabled() && aura.target != null) return aura.target;
        if (mc.currentScreen instanceof ChatScreen) return mc.player;
        return null;
    }
}
 
хуйня какая то, ширина не та, иконка не та, хоть бы попытался сделать рендер ректа похожим(тем более такой уже сливали на рокстар, перенести не составит труда)
 
Привет югейм, скиднул тх энерджи
Вроде 5 пост сильно не хуярьте вроде вышло вполне нормально, иконку найдете и вставите сами это вполне не трудно думаю

SS:Посмотреть вложение 333298 Посмотреть вложение 333299


шедеврокод:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;

import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import sweetie.evaware.api.utils.animation.AnimationUtil;
import sweetie.evaware.api.utils.color.ColorUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Fonts;
import sweetie.evaware.api.system.files.FileUtil;
import sweetie.evaware.client.features.modules.combat.AuraModule;
import sweetie.evaware.client.ui.widget.Widget;

import java.awt.*;

public class TargetInfoNewWidget extends Widget {

    private static final Identifier HEART = FileUtil.getImage("particles/heart2");

    @Override public String getName() { return "Target info"; }
    public TargetInfoNewWidget() { super(30f, 30f); }

    private final AnimationUtil showAnimation = new AnimationUtil();
    private float healthAnimation = 0f;
    private LivingEntity lastTarget;

    @Override
    public void render(MatrixStack matrixStack) {
        showAnimation.update();
        showAnimation.run(getTarget() != null ? 1.0 : 0.0, getDuration(), getEasing());

        LivingEntity fresh = getTarget();
        if (fresh != null) lastTarget = fresh;
        if (showAnimation.getValue() <= 0.0 || lastTarget == null) return;

        float anim     = (float) showAnimation.getValue();
        float targetHp = lastTarget.getHealth();
        float maxHp    = Math.max(lastTarget.getMaxHealth(), 1f);

        healthAnimation = MathUtil.interpolate(healthAnimation,
                MathHelper.clamp(targetHp / maxHp, 0f, 1f), 0.1f);

        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float radius   = scaled(7f);
        float padH     = scaled(4f);
        float padV     = scaled(4f);
        float avatarSz = scaled(22f);
        float nameSize = scaled(6.5f);
        float hpSize   = scaled(6f);
        float textGap  = scaled(2.5f);
        float spacing  = scaled(3f);
        float barH     = scaled(5f);
        float extraW   = scaled(12f);

        String name   = lastTarget.getName().getString();
        String hpText = String.format("%.1f", targetHp);
        float heartSz = hpSize;

        float absorptionAmount = lastTarget.getAbsorptionAmount();
        boolean hasAbsorption  = absorptionAmount > 0;
        String absorptionText  = hasAbsorption ? String.format("(%.1f)", absorptionAmount) : "";

        float nameW      = Fonts.SF_BOLD.getWidth(name, nameSize);
        float hpLineW    = heartSz + scaled(2f) + Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize)
                + (hasAbsorption ? scaled(3f) + Fonts.SF_SEMIBOLD.getWidth(absorptionText, hpSize) : 0);
        float textBlockW = Math.max(nameW, hpLineW);

        float totalW = padH + avatarSz + padH + textBlockW + padH + extraW;
        float totalH = padV + avatarSz + spacing + barH + padV;

        int a = (int)(255 * anim);

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, totalW, totalH, radius,
                new Color(20, 20, 30, (int)(230 * anim)));

        float avatarX = x + padH;
        float avatarY = y + padV;

        if (lastTarget instanceof PlayerEntity player) {
            RenderUtil.TEXTURE_RECT.drawHead(matrixStack, player,
                    avatarX, avatarY, avatarSz, avatarSz,
                    1f, scaled(5f), ColorUtil.setAlpha(Color.WHITE, a));
        } else {
            RenderUtil.RECT.draw(matrixStack, avatarX, avatarY, avatarSz, avatarSz,
                    scaled(5f), new Color(60, 60, 60, a));
            getSemiBoldFont().drawCenteredText(matrixStack, "?",
                    avatarX + avatarSz / 2f,
                    avatarY + avatarSz / 2f - nameSize / 2f,
                    nameSize, UIColors.textColor(a));
        }

        float tx         = avatarX + avatarSz + scaled(3f);
        float textTotalH = nameSize + textGap + hpSize;
        float textStartY = avatarY + (avatarSz - textTotalH) / 2f;

        Fonts.SF_BOLD.drawText(matrixStack, name, tx, textStartY, nameSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        float hpY = textStartY + nameSize + textGap;
        try {
            RenderSystem.enableBlend();
            RenderSystem.defaultBlendFunc();
            int texId = mc.getTextureManager().getTexture(HEART).getGlId();
            RenderUtil.TEXTURE_RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a), 0, 0, 1, 1, texId);
        } catch (Exception e) {
            RenderUtil.RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a));
        }
        Fonts.SF_SEMIBOLD.drawText(matrixStack, hpText,
                tx + heartSz + scaled(2f), hpY, hpSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        if (hasAbsorption) {
            float hpTextW = Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize);
            Fonts.SF_SEMIBOLD.drawText(matrixStack, " " + absorptionText,
                    tx + heartSz + scaled(2f) + hpTextW, hpY, hpSize,
                    new Color(255, 210, 50, a));
        }

        float barX = x + padH;
        float barY = y + padV + avatarSz + spacing;
        float barW = totalW - padH * 2f;
        float barR = barH / 2f;

        RenderUtil.RECT.draw(matrixStack, barX, barY, barW, barH, barR,
                new Color(0, 0, 0, (int)(100 * anim)));

        float fill = barW * healthAnimation;

        if (fill > 0) {
            RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, fill, barH, barR,
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a),
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a));
        }

        if (hasAbsorption) {
            float absorptionFill = Math.min(barW * MathHelper.clamp(absorptionAmount / maxHp, 0f, 1f), barW);
            if (absorptionFill > 0) {
                RenderUtil.RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(30, 20, 0, (int)(255 * anim)));
                RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)),
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)));
            }
        }

        getDraggable().setWidth(totalW);
        getDraggable().setHeight(totalH);
    }

    private LivingEntity getTarget() {
        AuraModule aura = AuraModule.getInstance();
        if (aura.isEnabled() && aura.target != null) return aura.target;
        if (mc.currentScreen instanceof ChatScreen) return mc.player;
        return null;
    }
}
Приемлемо
 
хуйня какая то, ширина не та, иконка не та, хоть бы попытался сделать рендер ректа похожим(тем более такой уже сливали на рокстар, перенести не составит труда)
стараться ради югейма? не неси бред фриканутый
 
стараться ради югейма? не неси бред фриканутый
Пиздец ты даун, если ты хочешь сделать скид, то сделай его нормальным. Если ты продолжаешь вылаживать говно, то хотя бы предерживайся советов и не делай хуйню.
 
Привет югейм, скиднул тх энерджи
Вроде 5 пост сильно не хуярьте вроде вышло вполне нормально, иконку найдете и вставите сами это вполне не трудно думаю

SS:Посмотреть вложение 333298 Посмотреть вложение 333299


шедеврокод:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;

import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import sweetie.evaware.api.utils.animation.AnimationUtil;
import sweetie.evaware.api.utils.color.ColorUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Fonts;
import sweetie.evaware.api.system.files.FileUtil;
import sweetie.evaware.client.features.modules.combat.AuraModule;
import sweetie.evaware.client.ui.widget.Widget;

import java.awt.*;

public class TargetInfoNewWidget extends Widget {

    private static final Identifier HEART = FileUtil.getImage("particles/heart2");

    @Override public String getName() { return "Target info"; }
    public TargetInfoNewWidget() { super(30f, 30f); }

    private final AnimationUtil showAnimation = new AnimationUtil();
    private float healthAnimation = 0f;
    private LivingEntity lastTarget;

    @Override
    public void render(MatrixStack matrixStack) {
        showAnimation.update();
        showAnimation.run(getTarget() != null ? 1.0 : 0.0, getDuration(), getEasing());

        LivingEntity fresh = getTarget();
        if (fresh != null) lastTarget = fresh;
        if (showAnimation.getValue() <= 0.0 || lastTarget == null) return;

        float anim     = (float) showAnimation.getValue();
        float targetHp = lastTarget.getHealth();
        float maxHp    = Math.max(lastTarget.getMaxHealth(), 1f);

        healthAnimation = MathUtil.interpolate(healthAnimation,
                MathHelper.clamp(targetHp / maxHp, 0f, 1f), 0.1f);

        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float radius   = scaled(7f);
        float padH     = scaled(4f);
        float padV     = scaled(4f);
        float avatarSz = scaled(22f);
        float nameSize = scaled(6.5f);
        float hpSize   = scaled(6f);
        float textGap  = scaled(2.5f);
        float spacing  = scaled(3f);
        float barH     = scaled(5f);
        float extraW   = scaled(12f);

        String name   = lastTarget.getName().getString();
        String hpText = String.format("%.1f", targetHp);
        float heartSz = hpSize;

        float absorptionAmount = lastTarget.getAbsorptionAmount();
        boolean hasAbsorption  = absorptionAmount > 0;
        String absorptionText  = hasAbsorption ? String.format("(%.1f)", absorptionAmount) : "";

        float nameW      = Fonts.SF_BOLD.getWidth(name, nameSize);
        float hpLineW    = heartSz + scaled(2f) + Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize)
                + (hasAbsorption ? scaled(3f) + Fonts.SF_SEMIBOLD.getWidth(absorptionText, hpSize) : 0);
        float textBlockW = Math.max(nameW, hpLineW);

        float totalW = padH + avatarSz + padH + textBlockW + padH + extraW;
        float totalH = padV + avatarSz + spacing + barH + padV;

        int a = (int)(255 * anim);

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, totalW, totalH, radius,
                new Color(20, 20, 30, (int)(230 * anim)));

        float avatarX = x + padH;
        float avatarY = y + padV;

        if (lastTarget instanceof PlayerEntity player) {
            RenderUtil.TEXTURE_RECT.drawHead(matrixStack, player,
                    avatarX, avatarY, avatarSz, avatarSz,
                    1f, scaled(5f), ColorUtil.setAlpha(Color.WHITE, a));
        } else {
            RenderUtil.RECT.draw(matrixStack, avatarX, avatarY, avatarSz, avatarSz,
                    scaled(5f), new Color(60, 60, 60, a));
            getSemiBoldFont().drawCenteredText(matrixStack, "?",
                    avatarX + avatarSz / 2f,
                    avatarY + avatarSz / 2f - nameSize / 2f,
                    nameSize, UIColors.textColor(a));
        }

        float tx         = avatarX + avatarSz + scaled(3f);
        float textTotalH = nameSize + textGap + hpSize;
        float textStartY = avatarY + (avatarSz - textTotalH) / 2f;

        Fonts.SF_BOLD.drawText(matrixStack, name, tx, textStartY, nameSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        float hpY = textStartY + nameSize + textGap;
        try {
            RenderSystem.enableBlend();
            RenderSystem.defaultBlendFunc();
            int texId = mc.getTextureManager().getTexture(HEART).getGlId();
            RenderUtil.TEXTURE_RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a), 0, 0, 1, 1, texId);
        } catch (Exception e) {
            RenderUtil.RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a));
        }
        Fonts.SF_SEMIBOLD.drawText(matrixStack, hpText,
                tx + heartSz + scaled(2f), hpY, hpSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        if (hasAbsorption) {
            float hpTextW = Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize);
            Fonts.SF_SEMIBOLD.drawText(matrixStack, " " + absorptionText,
                    tx + heartSz + scaled(2f) + hpTextW, hpY, hpSize,
                    new Color(255, 210, 50, a));
        }

        float barX = x + padH;
        float barY = y + padV + avatarSz + spacing;
        float barW = totalW - padH * 2f;
        float barR = barH / 2f;

        RenderUtil.RECT.draw(matrixStack, barX, barY, barW, barH, barR,
                new Color(0, 0, 0, (int)(100 * anim)));

        float fill = barW * healthAnimation;

        if (fill > 0) {
            RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, fill, barH, barR,
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a),
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a));
        }

        if (hasAbsorption) {
            float absorptionFill = Math.min(barW * MathHelper.clamp(absorptionAmount / maxHp, 0f, 1f), barW);
            if (absorptionFill > 0) {
                RenderUtil.RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(30, 20, 0, (int)(255 * anim)));
                RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)),
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)));
            }
        }

        getDraggable().setWidth(totalW);
        getDraggable().setHeight(totalH);
    }

    private LivingEntity getTarget() {
        AuraModule aura = AuraModule.getInstance();
        if (aura.isEnabled() && aura.target != null) return aura.target;
        if (mc.currentScreen instanceof ChatScreen) return mc.player;
        return null;
    }
}
я поражаюсь вами
 
Пожалуйста, авторизуйтесь для просмотра ссылки.
- иконка того сердечка, а сам скид ну ваще хуйня закруглённость не та,ширина не та, градиент не тот, довести до идеала можно просто ленится не надо
 
Привет югейм, скиднул тх энерджи
Вроде 5 пост сильно не хуярьте вроде вышло вполне нормально, иконку найдете и вставите сами это вполне не трудно думаю

SS:Посмотреть вложение 333298 Посмотреть вложение 333299


шедеврокод:
Expand Collapse Copy
package sweetie.evaware.client.ui.widget.overlay;

import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import sweetie.evaware.api.utils.animation.AnimationUtil;
import sweetie.evaware.api.utils.color.ColorUtil;
import sweetie.evaware.api.utils.color.UIColors;
import sweetie.evaware.api.utils.math.MathUtil;
import sweetie.evaware.api.utils.render.RenderUtil;
import sweetie.evaware.api.utils.render.fonts.Fonts;
import sweetie.evaware.api.system.files.FileUtil;
import sweetie.evaware.client.features.modules.combat.AuraModule;
import sweetie.evaware.client.ui.widget.Widget;

import java.awt.*;

public class TargetInfoNewWidget extends Widget {

    private static final Identifier HEART = FileUtil.getImage("particles/heart2");

    @Override public String getName() { return "Target info"; }
    public TargetInfoNewWidget() { super(30f, 30f); }

    private final AnimationUtil showAnimation = new AnimationUtil();
    private float healthAnimation = 0f;
    private LivingEntity lastTarget;

    @Override
    public void render(MatrixStack matrixStack) {
        showAnimation.update();
        showAnimation.run(getTarget() != null ? 1.0 : 0.0, getDuration(), getEasing());

        LivingEntity fresh = getTarget();
        if (fresh != null) lastTarget = fresh;
        if (showAnimation.getValue() <= 0.0 || lastTarget == null) return;

        float anim     = (float) showAnimation.getValue();
        float targetHp = lastTarget.getHealth();
        float maxHp    = Math.max(lastTarget.getMaxHealth(), 1f);

        healthAnimation = MathUtil.interpolate(healthAnimation,
                MathHelper.clamp(targetHp / maxHp, 0f, 1f), 0.1f);

        float x = getDraggable().getX();
        float y = getDraggable().getY();

        float radius   = scaled(7f);
        float padH     = scaled(4f);
        float padV     = scaled(4f);
        float avatarSz = scaled(22f);
        float nameSize = scaled(6.5f);
        float hpSize   = scaled(6f);
        float textGap  = scaled(2.5f);
        float spacing  = scaled(3f);
        float barH     = scaled(5f);
        float extraW   = scaled(12f);

        String name   = lastTarget.getName().getString();
        String hpText = String.format("%.1f", targetHp);
        float heartSz = hpSize;

        float absorptionAmount = lastTarget.getAbsorptionAmount();
        boolean hasAbsorption  = absorptionAmount > 0;
        String absorptionText  = hasAbsorption ? String.format("(%.1f)", absorptionAmount) : "";

        float nameW      = Fonts.SF_BOLD.getWidth(name, nameSize);
        float hpLineW    = heartSz + scaled(2f) + Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize)
                + (hasAbsorption ? scaled(3f) + Fonts.SF_SEMIBOLD.getWidth(absorptionText, hpSize) : 0);
        float textBlockW = Math.max(nameW, hpLineW);

        float totalW = padH + avatarSz + padH + textBlockW + padH + extraW;
        float totalH = padV + avatarSz + spacing + barH + padV;

        int a = (int)(255 * anim);

        RenderUtil.BLUR_RECT.draw(matrixStack, x, y, totalW, totalH, radius,
                new Color(20, 20, 30, (int)(230 * anim)));

        float avatarX = x + padH;
        float avatarY = y + padV;

        if (lastTarget instanceof PlayerEntity player) {
            RenderUtil.TEXTURE_RECT.drawHead(matrixStack, player,
                    avatarX, avatarY, avatarSz, avatarSz,
                    1f, scaled(5f), ColorUtil.setAlpha(Color.WHITE, a));
        } else {
            RenderUtil.RECT.draw(matrixStack, avatarX, avatarY, avatarSz, avatarSz,
                    scaled(5f), new Color(60, 60, 60, a));
            getSemiBoldFont().drawCenteredText(matrixStack, "?",
                    avatarX + avatarSz / 2f,
                    avatarY + avatarSz / 2f - nameSize / 2f,
                    nameSize, UIColors.textColor(a));
        }

        float tx         = avatarX + avatarSz + scaled(3f);
        float textTotalH = nameSize + textGap + hpSize;
        float textStartY = avatarY + (avatarSz - textTotalH) / 2f;

        Fonts.SF_BOLD.drawText(matrixStack, name, tx, textStartY, nameSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        float hpY = textStartY + nameSize + textGap;
        try {
            RenderSystem.enableBlend();
            RenderSystem.defaultBlendFunc();
            int texId = mc.getTextureManager().getTexture(HEART).getGlId();
            RenderUtil.TEXTURE_RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a), 0, 0, 1, 1, texId);
        } catch (Exception e) {
            RenderUtil.RECT.draw(matrixStack, tx, hpY, heartSz, heartSz, scaled(1f),
                    ColorUtil.setAlpha(UIColors.primary(), a));
        }
        Fonts.SF_SEMIBOLD.drawText(matrixStack, hpText,
                tx + heartSz + scaled(2f), hpY, hpSize,
                ColorUtil.setAlpha(Color.WHITE, a));

        if (hasAbsorption) {
            float hpTextW = Fonts.SF_SEMIBOLD.getWidth(hpText, hpSize);
            Fonts.SF_SEMIBOLD.drawText(matrixStack, " " + absorptionText,
                    tx + heartSz + scaled(2f) + hpTextW, hpY, hpSize,
                    new Color(255, 210, 50, a));
        }

        float barX = x + padH;
        float barY = y + padV + avatarSz + spacing;
        float barW = totalW - padH * 2f;
        float barR = barH / 2f;

        RenderUtil.RECT.draw(matrixStack, barX, barY, barW, barH, barR,
                new Color(0, 0, 0, (int)(100 * anim)));

        float fill = barW * healthAnimation;

        if (fill > 0) {
            RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, fill, barH, barR,
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a),
                    ColorUtil.setAlpha(UIColors.primary(), a),
                    ColorUtil.setAlpha(UIColors.secondary(), a));
        }

        if (hasAbsorption) {
            float absorptionFill = Math.min(barW * MathHelper.clamp(absorptionAmount / maxHp, 0f, 1f), barW);
            if (absorptionFill > 0) {
                RenderUtil.RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(30, 20, 0, (int)(255 * anim)));
                RenderUtil.GRADIENT_RECT.draw(matrixStack, barX, barY, absorptionFill, barH, barR,
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)),
                        new Color(180, 120, 0, (int)(255 * anim)),
                        new Color(255, 210, 50, (int)(255 * anim)));
            }
        }

        getDraggable().setWidth(totalW);
        getDraggable().setHeight(totalH);
    }

    private LivingEntity getTarget() {
        AuraModule aura = AuraModule.getInstance();
        if (aura.isEnabled() && aura.target != null) return aura.target;
        if (mc.currentScreen instanceof ChatScreen) return mc.player;
        return null;
    }
}
Полное дерьмо! чувак ты даже не сделал блюр ширину не подобрал иконку не подобрал
 
Назад
Сверху Снизу