Визуальная часть ArmorHud | evaware

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
27 Май 2024
Сообщения
3
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Кароч,это обычный армор худ ева вейра,но с драггингом и с фоном

код:
Expand Collapse Copy
package eva.pasta.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import eva.pasta.events.EventRender2D;
import eva.pasta.ui.clienthud.updater.ElementRenderer;
import eva.pasta.utils.animations.AnimationUtility;
import eva.pasta.utils.animations.Direction;
import eva.pasta.utils.animations.easing.CompactAnimation;
import eva.pasta.utils.animations.easing.Easing;
import eva.pasta.utils.animations.impl.EaseBackIn;
import eva.pasta.manager.drag.Dragging;
import eva.pasta.utils.math.MathUtility;
import eva.pasta.utils.render.color.ColorUtility;
import eva.pasta.utils.render.engine2d.RenderUtility;
import eva.pasta.utils.text.font.ClientFonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.ResourceLocation;

import java.util.Iterator;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class ArmorHud implements ElementRenderer {

    private static final ResourceLocation TOTEM_TEXTURE = new ResourceLocation("minecraft", "textures/item/totem_of_undying.png");

    final Dragging dragging;
    private final CompactAnimation widthAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    private final CompactAnimation heightAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    double width;
    float height;
    final AnimationUtility animation = new EaseBackIn(300, 1, 1);

    float armorAnimation;
    float totemAnimation;

    @Override
    public void render(EventRender2D eventRender2D) {
        MatrixStack ms = eventRender2D.getMatrixStack();

        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;

        boolean shouldShow = shouldShowHud();
        animation.setDirection(shouldShow ? Direction.FORWARDS : Direction.BACKWARDS);
        animation.setDuration(shouldShow ? 300 : 200);

        armorAnimation = MathUtility.lerp(armorAnimation,
                mc.currentScreen instanceof ChatScreen ? window.getScaledHeight() - 33 : window.getScaledHeight() - (16 + 2), 15);

        GlStateManager.pushMatrix();
        RenderUtility.sizeAnimation(posX + (width / 2), (posY + height / 2), animation.getOutput());

        int armorCount = 0;
        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) armorCount++;
        }

        int totemCount = countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING);
        boolean hasTotems = totemCount > 0;

        float itemSize = 16;
        float spacing = 2;
        float calculatedWidth = (armorCount * (itemSize + spacing)) + (hasTotems ? (itemSize + spacing) : 0);
        float calculatedHeight = itemSize;

        widthAnimation.run(calculatedWidth + padding * 2);
        width = widthAnimation.getValue();
        heightAnimation.run(calculatedHeight + padding * 2);
        height = (float) heightAnimation.getValue();

        // отрисовка фона ф
        RenderUtility.drawRoundedRect(posX, posY, (float) width, height, 4.0f,
                ColorUtility.rgba(25, 25, 35, 220));

        // отрисовка брони
        float startX = posX + padding;
        float startY = posY + padding;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (itemStack.isEmpty()) continue;

            mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, (int) startX, (int) startY);
            mc.getItemRenderer().renderItemOverlayIntoGUI(mc.fontRenderer, itemStack, (int) startX, (int) startY, null);

            startX += itemSize + spacing;
        }

        // отрисовк тотема
        if (hasTotems) {
            // анимка тотема
            totemAnimation = MathUtility.lerp(totemAnimation, 1.0f, 15);

            float size = 14;
            String text = totemCount > 99 ? "99+" : String.valueOf(totemCount);

            mc.getTextureManager().bindTexture(TOTEM_TEXTURE);
            AbstractGui.blit(ms, startX, startY + 1, 0.0F, 0.0F, size, size, size, size);
            ClientFonts.tenacityBold[16].drawCenteredStringWithOutline(ms, text,
                    startX + size / 2f, startY + size - 1, -1);
        }

        GlStateManager.popMatrix();

        dragging.setWidth((float) width);
        dragging.setHeight(height);
    }

    private boolean shouldShowHud() {
        if (mc.currentScreen instanceof ChatScreen) return true;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) return true;
        }

        return (countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING)) > 0;
    }

    private int countItems(Item item) {
        int count = 0;
        Iterator<ItemStack> iterator = mc.player.inventory.mainInventory.iterator();

        while(iterator.hasNext()) {
            ItemStack itemStack = iterator.next();
            if (itemStack.getItem() == item) {
                count += itemStack.getCount();
            }
        }

        return count;
    }

    private int countItemsInOffhand(Item item) {
        ItemStack offhand = mc.player.getHeldItemOffhand();
        return offhand.getItem() == item ? offhand.getCount() : 0;
    }
}
ss
1759083786546.png
 
Кароч,это обычный армор худ ева вейра,но с драггингом и с фоном

код:
Expand Collapse Copy
package eva.pasta.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import eva.pasta.events.EventRender2D;
import eva.pasta.ui.clienthud.updater.ElementRenderer;
import eva.pasta.utils.animations.AnimationUtility;
import eva.pasta.utils.animations.Direction;
import eva.pasta.utils.animations.easing.CompactAnimation;
import eva.pasta.utils.animations.easing.Easing;
import eva.pasta.utils.animations.impl.EaseBackIn;
import eva.pasta.manager.drag.Dragging;
import eva.pasta.utils.math.MathUtility;
import eva.pasta.utils.render.color.ColorUtility;
import eva.pasta.utils.render.engine2d.RenderUtility;
import eva.pasta.utils.text.font.ClientFonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.ResourceLocation;

import java.util.Iterator;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class ArmorHud implements ElementRenderer {

    private static final ResourceLocation TOTEM_TEXTURE = new ResourceLocation("minecraft", "textures/item/totem_of_undying.png");

    final Dragging dragging;
    private final CompactAnimation widthAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    private final CompactAnimation heightAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    double width;
    float height;
    final AnimationUtility animation = new EaseBackIn(300, 1, 1);

    float armorAnimation;
    float totemAnimation;

    @Override
    public void render(EventRender2D eventRender2D) {
        MatrixStack ms = eventRender2D.getMatrixStack();

        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;

        boolean shouldShow = shouldShowHud();
        animation.setDirection(shouldShow ? Direction.FORWARDS : Direction.BACKWARDS);
        animation.setDuration(shouldShow ? 300 : 200);

        armorAnimation = MathUtility.lerp(armorAnimation,
                mc.currentScreen instanceof ChatScreen ? window.getScaledHeight() - 33 : window.getScaledHeight() - (16 + 2), 15);

        GlStateManager.pushMatrix();
        RenderUtility.sizeAnimation(posX + (width / 2), (posY + height / 2), animation.getOutput());

        int armorCount = 0;
        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) armorCount++;
        }

        int totemCount = countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING);
        boolean hasTotems = totemCount > 0;

        float itemSize = 16;
        float spacing = 2;
        float calculatedWidth = (armorCount * (itemSize + spacing)) + (hasTotems ? (itemSize + spacing) : 0);
        float calculatedHeight = itemSize;

        widthAnimation.run(calculatedWidth + padding * 2);
        width = widthAnimation.getValue();
        heightAnimation.run(calculatedHeight + padding * 2);
        height = (float) heightAnimation.getValue();

        // отрисовка фона ф
        RenderUtility.drawRoundedRect(posX, posY, (float) width, height, 4.0f,
                ColorUtility.rgba(25, 25, 35, 220));

        // отрисовка брони
        float startX = posX + padding;
        float startY = posY + padding;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (itemStack.isEmpty()) continue;

            mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, (int) startX, (int) startY);
            mc.getItemRenderer().renderItemOverlayIntoGUI(mc.fontRenderer, itemStack, (int) startX, (int) startY, null);

            startX += itemSize + spacing;
        }

        // отрисовк тотема
        if (hasTotems) {
            // анимка тотема
            totemAnimation = MathUtility.lerp(totemAnimation, 1.0f, 15);

            float size = 14;
            String text = totemCount > 99 ? "99+" : String.valueOf(totemCount);

            mc.getTextureManager().bindTexture(TOTEM_TEXTURE);
            AbstractGui.blit(ms, startX, startY + 1, 0.0F, 0.0F, size, size, size, size);
            ClientFonts.tenacityBold[16].drawCenteredStringWithOutline(ms, text,
                    startX + size / 2f, startY + size - 1, -1);
        }

        GlStateManager.popMatrix();

        dragging.setWidth((float) width);
        dragging.setHeight(height);
    }

    private boolean shouldShowHud() {
        if (mc.currentScreen instanceof ChatScreen) return true;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) return true;
        }

        return (countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING)) > 0;
    }

    private int countItems(Item item) {
        int count = 0;
        Iterator<ItemStack> iterator = mc.player.inventory.mainInventory.iterator();

        while(iterator.hasNext()) {
            ItemStack itemStack = iterator.next();
            if (itemStack.getItem() == item) {
                count += itemStack.getCount();
            }
        }

        return count;
    }

    private int countItemsInOffhand(Item item) {
        ItemStack offhand = mc.player.getHeldItemOffhand();
        return offhand.getItem() == item ? offhand.getCount() : 0;
    }
}
ssПосмотреть вложение 316705
Говно
 
кто навонял
 
Кароч,это обычный армор худ ева вейра,но с драггингом и с фоном

код:
Expand Collapse Copy
package eva.pasta.ui.clienthud.impl;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import eva.pasta.events.EventRender2D;
import eva.pasta.ui.clienthud.updater.ElementRenderer;
import eva.pasta.utils.animations.AnimationUtility;
import eva.pasta.utils.animations.Direction;
import eva.pasta.utils.animations.easing.CompactAnimation;
import eva.pasta.utils.animations.easing.Easing;
import eva.pasta.utils.animations.impl.EaseBackIn;
import eva.pasta.manager.drag.Dragging;
import eva.pasta.utils.math.MathUtility;
import eva.pasta.utils.render.color.ColorUtility;
import eva.pasta.utils.render.engine2d.RenderUtility;
import eva.pasta.utils.text.font.ClientFonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.ResourceLocation;

import java.util.Iterator;

@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class ArmorHud implements ElementRenderer {

    private static final ResourceLocation TOTEM_TEXTURE = new ResourceLocation("minecraft", "textures/item/totem_of_undying.png");

    final Dragging dragging;
    private final CompactAnimation widthAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    private final CompactAnimation heightAnimation = new CompactAnimation(Easing.EASE_OUT_QUART, 100);
    double width;
    float height;
    final AnimationUtility animation = new EaseBackIn(300, 1, 1);

    float armorAnimation;
    float totemAnimation;

    @Override
    public void render(EventRender2D eventRender2D) {
        MatrixStack ms = eventRender2D.getMatrixStack();

        float posX = dragging.getX();
        float posY = dragging.getY();
        float padding = 5;

        boolean shouldShow = shouldShowHud();
        animation.setDirection(shouldShow ? Direction.FORWARDS : Direction.BACKWARDS);
        animation.setDuration(shouldShow ? 300 : 200);

        armorAnimation = MathUtility.lerp(armorAnimation,
                mc.currentScreen instanceof ChatScreen ? window.getScaledHeight() - 33 : window.getScaledHeight() - (16 + 2), 15);

        GlStateManager.pushMatrix();
        RenderUtility.sizeAnimation(posX + (width / 2), (posY + height / 2), animation.getOutput());

        int armorCount = 0;
        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) armorCount++;
        }

        int totemCount = countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING);
        boolean hasTotems = totemCount > 0;

        float itemSize = 16;
        float spacing = 2;
        float calculatedWidth = (armorCount * (itemSize + spacing)) + (hasTotems ? (itemSize + spacing) : 0);
        float calculatedHeight = itemSize;

        widthAnimation.run(calculatedWidth + padding * 2);
        width = widthAnimation.getValue();
        heightAnimation.run(calculatedHeight + padding * 2);
        height = (float) heightAnimation.getValue();

        // отрисовка фона ф
        RenderUtility.drawRoundedRect(posX, posY, (float) width, height, 4.0f,
                ColorUtility.rgba(25, 25, 35, 220));

        // отрисовка брони
        float startX = posX + padding;
        float startY = posY + padding;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (itemStack.isEmpty()) continue;

            mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, (int) startX, (int) startY);
            mc.getItemRenderer().renderItemOverlayIntoGUI(mc.fontRenderer, itemStack, (int) startX, (int) startY, null);

            startX += itemSize + spacing;
        }

        // отрисовк тотема
        if (hasTotems) {
            // анимка тотема
            totemAnimation = MathUtility.lerp(totemAnimation, 1.0f, 15);

            float size = 14;
            String text = totemCount > 99 ? "99+" : String.valueOf(totemCount);

            mc.getTextureManager().bindTexture(TOTEM_TEXTURE);
            AbstractGui.blit(ms, startX, startY + 1, 0.0F, 0.0F, size, size, size, size);
            ClientFonts.tenacityBold[16].drawCenteredStringWithOutline(ms, text,
                    startX + size / 2f, startY + size - 1, -1);
        }

        GlStateManager.popMatrix();

        dragging.setWidth((float) width);
        dragging.setHeight(height);
    }

    private boolean shouldShowHud() {
        if (mc.currentScreen instanceof ChatScreen) return true;

        for (ItemStack itemStack : mc.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) return true;
        }

        return (countItems(Items.TOTEM_OF_UNDYING) + countItemsInOffhand(Items.TOTEM_OF_UNDYING)) > 0;
    }

    private int countItems(Item item) {
        int count = 0;
        Iterator<ItemStack> iterator = mc.player.inventory.mainInventory.iterator();

        while(iterator.hasNext()) {
            ItemStack itemStack = iterator.next();
            if (itemStack.getItem() == item) {
                count += itemStack.getCount();
            }
        }

        return count;
    }

    private int countItemsInOffhand(Item item) {
        ItemStack offhand = mc.player.getHeldItemOffhand();
        return offhand.getItem() == item ? offhand.getCount() : 0;
    }
}
ssПосмотреть вложение 316705
кака
 
че за калл
 
добавить рект и драги
 
Назад
Сверху Снизу