Визуальная часть Cooldowns Any Item

  • Автор темы Автор темы Moyten
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
503
Реакции
3
Выберите загрузчик игры
  1. Vanilla

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Решил чучуть порадовать вас. Сливаю кд на любой предмет с отображением кд в виде полосочки,
по сути любая база, но рендер 3.1
SS=
1744829460432.jpeg



DW=
Cooldowns:
Expand Collapse Copy
package fgnepasti.wonderful.ui.display.wonderful;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import fgnepasti.wonderful.Wonderful;
import fgnepasti.wonderful.events.EventDisplay;
import fgnepasti.wonderful.ui.display.ElementRenderer;
import fgnepasti.wonderful.ui.interfaces.naselfcodilgavna.ClickGui;
import fgnepasti.wonderful.ui.styles.Style;
import fgnepasti.wonderful.utils.animations.Direction;
import fgnepasti.wonderful.utils.animations.impl.ElasticAnimation;
import fgnepasti.wonderful.utils.drag.Dragging;
import fgnepasti.wonderful.utils.math.MathUtil;
import fgnepasti.wonderful.utils.render.ColorUtils;
import fgnepasti.wonderful.utils.render.DisplayUtils;
import fgnepasti.wonderful.utils.render.Scissor;
import fgnepasti.wonderful.utils.render.font.Fonts;
import lombok.RequiredArgsConstructor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;

import java.util.HashSet;
import java.util.Set;

@RequiredArgsConstructor
public class CooldownsRenderer implements ElementRenderer {

    final Dragging dragging;

    final ElasticAnimation animation = new ElasticAnimation(300,1, 15, 3, false);

    float width;
    float height;

    private long startTime = -1;

    [USER=1367676]@override[/USER]
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();
        Minecraft mc = Minecraft.getInstance();

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

        animation.setDirection((height > 20 || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof fgnepasti.wonderful.ui.interfaces.newdropdown.ClickGui || mc.currentScreen instanceof ClickGui) ? Direction.FORWARDS : Direction.BACKWARDS);

        GlStateManager.pushMatrix();
        GlStateManager.translated(posX + (width / 2), posY + (height / 2), 0);
        GlStateManager.scaled((float) animation.getOutput(), (float) animation.getOutput(), (float) animation.getOutput());
        GlStateManager.translated(-(posX + (width / 2)), -(posY + (height / 2)), 0);
        DisplayUtils.drawGlow(posX,posY,width,height,4, ColorUtils.rgba(29, 31, 42, 150));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height + 24);


        Fonts.sf_semibold.drawCenteredText(ms, "Cooldowns", posX + width / 2, posY + padding - 0.5f, ColorUtils.rgb(255, 255, 255), fontSize, 0.1f);
        fgnepasti.wonderful.utils.font.Fonts.oldNextGen[16].drawString(eventDisplay.getMatrixStack(), "O", posX + 6, posY + padding + 2f, ColorUtils.rgb(255, 255, 255));

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sf_semibold.getWidth("Cooldowns", fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 2, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));


        posY += 3f;

        Set<Item> acitveCooldowns = new HashSet<>();

        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

//            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
//                print("Тута кд на айтем: " + itemStack.getItem().getName().getString());
//            }z


            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
                if (!acitveCooldowns.contains(itemStack.getItem())) {
                    renderCooldownItem(ms, posX, posY, fontSize, padding, itemStack, mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()), posY);

                    acitveCooldowns.add(itemStack.getItem());
                    //print("инфо о кд: " + itemStack + " " + mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()));
                    posY += (fontSize + padding);
                    localHeight += (fontSize + padding);
                }
            }
        }


        Scissor.unset();
        Scissor.pop();
        GlStateManager.popMatrix();
        width = MathUtil.lerp(width, Math.max(maxWidth, 80.0f), 20.0f);
        height = MathUtil.lerp(height, Math.max(localHeight + 2.5f, 10.0f), 50.0f);
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    private float renderCooldownItem(MatrixStack ms, float posX, float posY, float fontSize, float padding, ItemStack itemStack, float cooldownDuration, float currentPosY) {
        boolean isItemInInventory = mc.player.inventory.hasItemStack(itemStack);
        long currentTime = System.currentTimeMillis();
        String cooldownText = "";

        if (isItemInInventory && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
            if (startTime == -1) {
                startTime = currentTime;
            }
            float cooldownTicks = cooldownDuration;
            cooldownText = cooldownTicks + "";

            if (cooldownTicks <= 0) {
                startTime = 0;
            }
        }

        else if (isItemInInventory) {
            cooldownText = "";
        }

        String itemName = itemStack.getItem().getName().getString();
        if (isItemInInventory) {
            if (itemStack.getItem() == Items.ENCHANTED_GOLDEN_APPLE) {
                itemName = "Чарка";
            } else if (itemStack.getItem() == Items.ENDER_EYE) {
                itemName = "Дезорент";
            } else if (itemStack.getItem() == Items.NETHERITE_SCRAP) {
                itemName = "Трапка";
            } else if (itemStack.getItem() == Items.SUGAR) {
                itemName = "Явная пыль";
            } else if (itemStack.getItem() == Items.ENDER_PEARL) {
                itemName = "Эндер-перл";
            } else if (itemStack.getItem() == Items.GOLDEN_APPLE) {
                itemName = "Гэпл";
            } else if (itemStack.getItem() == Items.DRIED_KELP) {
                itemName = "Пласт";
            }

            if (!cooldownText.isEmpty()) {
                Style style = Wonderful.getInstance().getStyleManager().getCurrentStyle();
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30, 2.5f, 1, ColorUtils.rgb(12, 12, 12));
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30 * cooldownDuration, 2.5f, 1, style.getFirstColor().getRGB());
            }
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX + padding, currentPosY, 50 - 10, 10);
        Fonts.sf_medium.drawText(ms, itemName, posX + padding, currentPosY + 2.5f,  ColorUtils.rgba(255, 255, 255, 255), fontSize, 0.1f);
        Scissor.unset();
        Scissor.pop();
        currentPosY += (padding / 1.2f);
        return currentPosY;
    }
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
+rep
 
Решил чучуть порадовать вас. Сливаю кд на любой предмет с отображением кд в виде полосочки,
по сути любая база, но рендер 3.1
SS=Посмотреть вложение 303847


DW=
Cooldowns:
Expand Collapse Copy
package fgnepasti.wonderful.ui.display.wonderful;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import fgnepasti.wonderful.Wonderful;
import fgnepasti.wonderful.events.EventDisplay;
import fgnepasti.wonderful.ui.display.ElementRenderer;
import fgnepasti.wonderful.ui.interfaces.naselfcodilgavna.ClickGui;
import fgnepasti.wonderful.ui.styles.Style;
import fgnepasti.wonderful.utils.animations.Direction;
import fgnepasti.wonderful.utils.animations.impl.ElasticAnimation;
import fgnepasti.wonderful.utils.drag.Dragging;
import fgnepasti.wonderful.utils.math.MathUtil;
import fgnepasti.wonderful.utils.render.ColorUtils;
import fgnepasti.wonderful.utils.render.DisplayUtils;
import fgnepasti.wonderful.utils.render.Scissor;
import fgnepasti.wonderful.utils.render.font.Fonts;
import lombok.RequiredArgsConstructor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;

import java.util.HashSet;
import java.util.Set;

@RequiredArgsConstructor
public class CooldownsRenderer implements ElementRenderer {

    final Dragging dragging;

    final ElasticAnimation animation = new ElasticAnimation(300,1, 15, 3, false);

    float width;
    float height;

    private long startTime = -1;

    [USER=1367676]@override[/USER]
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();
        Minecraft mc = Minecraft.getInstance();

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

        animation.setDirection((height > 20 || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof fgnepasti.wonderful.ui.interfaces.newdropdown.ClickGui || mc.currentScreen instanceof ClickGui) ? Direction.FORWARDS : Direction.BACKWARDS);

        GlStateManager.pushMatrix();
        GlStateManager.translated(posX + (width / 2), posY + (height / 2), 0);
        GlStateManager.scaled((float) animation.getOutput(), (float) animation.getOutput(), (float) animation.getOutput());
        GlStateManager.translated(-(posX + (width / 2)), -(posY + (height / 2)), 0);
        DisplayUtils.drawGlow(posX,posY,width,height,4, ColorUtils.rgba(29, 31, 42, 150));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height + 24);


        Fonts.sf_semibold.drawCenteredText(ms, "Cooldowns", posX + width / 2, posY + padding - 0.5f, ColorUtils.rgb(255, 255, 255), fontSize, 0.1f);
        fgnepasti.wonderful.utils.font.Fonts.oldNextGen[16].drawString(eventDisplay.getMatrixStack(), "O", posX + 6, posY + padding + 2f, ColorUtils.rgb(255, 255, 255));

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sf_semibold.getWidth("Cooldowns", fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 2, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));


        posY += 3f;

        Set<Item> acitveCooldowns = new HashSet<>();

        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

//            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
//                print("Тута кд на айтем: " + itemStack.getItem().getName().getString());
//            }z


            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
                if (!acitveCooldowns.contains(itemStack.getItem())) {
                    renderCooldownItem(ms, posX, posY, fontSize, padding, itemStack, mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()), posY);

                    acitveCooldowns.add(itemStack.getItem());
                    //print("инфо о кд: " + itemStack + " " + mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()));
                    posY += (fontSize + padding);
                    localHeight += (fontSize + padding);
                }
            }
        }


        Scissor.unset();
        Scissor.pop();
        GlStateManager.popMatrix();
        width = MathUtil.lerp(width, Math.max(maxWidth, 80.0f), 20.0f);
        height = MathUtil.lerp(height, Math.max(localHeight + 2.5f, 10.0f), 50.0f);
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    private float renderCooldownItem(MatrixStack ms, float posX, float posY, float fontSize, float padding, ItemStack itemStack, float cooldownDuration, float currentPosY) {
        boolean isItemInInventory = mc.player.inventory.hasItemStack(itemStack);
        long currentTime = System.currentTimeMillis();
        String cooldownText = "";

        if (isItemInInventory && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
            if (startTime == -1) {
                startTime = currentTime;
            }
            float cooldownTicks = cooldownDuration;
            cooldownText = cooldownTicks + "";

            if (cooldownTicks <= 0) {
                startTime = 0;
            }
        }

        else if (isItemInInventory) {
            cooldownText = "";
        }

        String itemName = itemStack.getItem().getName().getString();
        if (isItemInInventory) {
            if (itemStack.getItem() == Items.ENCHANTED_GOLDEN_APPLE) {
                itemName = "Чарка";
            } else if (itemStack.getItem() == Items.ENDER_EYE) {
                itemName = "Дезорент";
            } else if (itemStack.getItem() == Items.NETHERITE_SCRAP) {
                itemName = "Трапка";
            } else if (itemStack.getItem() == Items.SUGAR) {
                itemName = "Явная пыль";
            } else if (itemStack.getItem() == Items.ENDER_PEARL) {
                itemName = "Эндер-перл";
            } else if (itemStack.getItem() == Items.GOLDEN_APPLE) {
                itemName = "Гэпл";
            } else if (itemStack.getItem() == Items.DRIED_KELP) {
                itemName = "Пласт";
            }

            if (!cooldownText.isEmpty()) {
                Style style = Wonderful.getInstance().getStyleManager().getCurrentStyle();
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30, 2.5f, 1, ColorUtils.rgb(12, 12, 12));
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30 * cooldownDuration, 2.5f, 1, style.getFirstColor().getRGB());
            }
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX + padding, currentPosY, 50 - 10, 10);
        Fonts.sf_medium.drawText(ms, itemName, posX + padding, currentPosY + 2.5f,  ColorUtils.rgba(255, 255, 255, 255), fontSize, 0.1f);
        Scissor.unset();
        Scissor.pop();
        currentPosY += (padding / 1.2f);
        return currentPosY;
    }
}
дай drawGlow и эту херню как решить
вфыфвы.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Блять это даже выглядит не плохо если доработать
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ахуенно +rep
 
Решил чучуть порадовать вас. Сливаю кд на любой предмет с отображением кд в виде полосочки,
по сути любая база, но рендер 3.1
SS=Посмотреть вложение 303847


DW=
Cooldowns:
Expand Collapse Copy
package fgnepasti.wonderful.ui.display.wonderful;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import fgnepasti.wonderful.Wonderful;
import fgnepasti.wonderful.events.EventDisplay;
import fgnepasti.wonderful.ui.display.ElementRenderer;
import fgnepasti.wonderful.ui.interfaces.naselfcodilgavna.ClickGui;
import fgnepasti.wonderful.ui.styles.Style;
import fgnepasti.wonderful.utils.animations.Direction;
import fgnepasti.wonderful.utils.animations.impl.ElasticAnimation;
import fgnepasti.wonderful.utils.drag.Dragging;
import fgnepasti.wonderful.utils.math.MathUtil;
import fgnepasti.wonderful.utils.render.ColorUtils;
import fgnepasti.wonderful.utils.render.DisplayUtils;
import fgnepasti.wonderful.utils.render.Scissor;
import fgnepasti.wonderful.utils.render.font.Fonts;
import lombok.RequiredArgsConstructor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;

import java.util.HashSet;
import java.util.Set;

@RequiredArgsConstructor
public class CooldownsRenderer implements ElementRenderer {

    final Dragging dragging;

    final ElasticAnimation animation = new ElasticAnimation(300,1, 15, 3, false);

    float width;
    float height;

    private long startTime = -1;

    [USER=1367676]@override[/USER]
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();
        Minecraft mc = Minecraft.getInstance();

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

        animation.setDirection((height > 20 || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof fgnepasti.wonderful.ui.interfaces.newdropdown.ClickGui || mc.currentScreen instanceof ClickGui) ? Direction.FORWARDS : Direction.BACKWARDS);

        GlStateManager.pushMatrix();
        GlStateManager.translated(posX + (width / 2), posY + (height / 2), 0);
        GlStateManager.scaled((float) animation.getOutput(), (float) animation.getOutput(), (float) animation.getOutput());
        GlStateManager.translated(-(posX + (width / 2)), -(posY + (height / 2)), 0);
        DisplayUtils.drawGlow(posX,posY,width,height,4, ColorUtils.rgba(29, 31, 42, 150));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height + 24);


        Fonts.sf_semibold.drawCenteredText(ms, "Cooldowns", posX + width / 2, posY + padding - 0.5f, ColorUtils.rgb(255, 255, 255), fontSize, 0.1f);
        fgnepasti.wonderful.utils.font.Fonts.oldNextGen[16].drawString(eventDisplay.getMatrixStack(), "O", posX + 6, posY + padding + 2f, ColorUtils.rgb(255, 255, 255));

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sf_semibold.getWidth("Cooldowns", fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 2, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));


        posY += 3f;

        Set<Item> acitveCooldowns = new HashSet<>();

        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

//            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
//                print("Тута кд на айтем: " + itemStack.getItem().getName().getString());
//            }z


            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
                if (!acitveCooldowns.contains(itemStack.getItem())) {
                    renderCooldownItem(ms, posX, posY, fontSize, padding, itemStack, mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()), posY);

                    acitveCooldowns.add(itemStack.getItem());
                    //print("инфо о кд: " + itemStack + " " + mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()));
                    posY += (fontSize + padding);
                    localHeight += (fontSize + padding);
                }
            }
        }


        Scissor.unset();
        Scissor.pop();
        GlStateManager.popMatrix();
        width = MathUtil.lerp(width, Math.max(maxWidth, 80.0f), 20.0f);
        height = MathUtil.lerp(height, Math.max(localHeight + 2.5f, 10.0f), 50.0f);
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    private float renderCooldownItem(MatrixStack ms, float posX, float posY, float fontSize, float padding, ItemStack itemStack, float cooldownDuration, float currentPosY) {
        boolean isItemInInventory = mc.player.inventory.hasItemStack(itemStack);
        long currentTime = System.currentTimeMillis();
        String cooldownText = "";

        if (isItemInInventory && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
            if (startTime == -1) {
                startTime = currentTime;
            }
            float cooldownTicks = cooldownDuration;
            cooldownText = cooldownTicks + "";

            if (cooldownTicks <= 0) {
                startTime = 0;
            }
        }

        else if (isItemInInventory) {
            cooldownText = "";
        }

        String itemName = itemStack.getItem().getName().getString();
        if (isItemInInventory) {
            if (itemStack.getItem() == Items.ENCHANTED_GOLDEN_APPLE) {
                itemName = "Чарка";
            } else if (itemStack.getItem() == Items.ENDER_EYE) {
                itemName = "Дезорент";
            } else if (itemStack.getItem() == Items.NETHERITE_SCRAP) {
                itemName = "Трапка";
            } else if (itemStack.getItem() == Items.SUGAR) {
                itemName = "Явная пыль";
            } else if (itemStack.getItem() == Items.ENDER_PEARL) {
                itemName = "Эндер-перл";
            } else if (itemStack.getItem() == Items.GOLDEN_APPLE) {
                itemName = "Гэпл";
            } else if (itemStack.getItem() == Items.DRIED_KELP) {
                itemName = "Пласт";
            }

            if (!cooldownText.isEmpty()) {
                Style style = Wonderful.getInstance().getStyleManager().getCurrentStyle();
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30, 2.5f, 1, ColorUtils.rgb(12, 12, 12));
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30 * cooldownDuration, 2.5f, 1, style.getFirstColor().getRGB());
            }
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX + padding, currentPosY, 50 - 10, 10);
        Fonts.sf_medium.drawText(ms, itemName, posX + padding, currentPosY + 2.5f,  ColorUtils.rgba(255, 255, 255, 255), fontSize, 0.1f);
        Scissor.unset();
        Scissor.pop();
        currentPosY += (padding / 1.2f);
        return currentPosY;
    }
}
не работает хотя ошибок нет
 
Последнее редактирование:
Решил чучуть порадовать вас. Сливаю кд на любой предмет с отображением кд в виде полосочки,
по сути любая база, но рендер 3.1
SS=Посмотреть вложение 303847


DW=
Cooldowns:
Expand Collapse Copy
package fgnepasti.wonderful.ui.display.wonderful;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import fgnepasti.wonderful.Wonderful;
import fgnepasti.wonderful.events.EventDisplay;
import fgnepasti.wonderful.ui.display.ElementRenderer;
import fgnepasti.wonderful.ui.interfaces.naselfcodilgavna.ClickGui;
import fgnepasti.wonderful.ui.styles.Style;
import fgnepasti.wonderful.utils.animations.Direction;
import fgnepasti.wonderful.utils.animations.impl.ElasticAnimation;
import fgnepasti.wonderful.utils.drag.Dragging;
import fgnepasti.wonderful.utils.math.MathUtil;
import fgnepasti.wonderful.utils.render.ColorUtils;
import fgnepasti.wonderful.utils.render.DisplayUtils;
import fgnepasti.wonderful.utils.render.Scissor;
import fgnepasti.wonderful.utils.render.font.Fonts;
import lombok.RequiredArgsConstructor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;

import java.util.HashSet;
import java.util.Set;

@RequiredArgsConstructor
public class CooldownsRenderer implements ElementRenderer {

    final Dragging dragging;

    final ElasticAnimation animation = new ElasticAnimation(300,1, 15, 3, false);

    float width;
    float height;

    private long startTime = -1;

    [USER=1367676]@override[/USER]
    public void render(EventDisplay eventDisplay) {
        MatrixStack ms = eventDisplay.getMatrixStack();
        Minecraft mc = Minecraft.getInstance();

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

        animation.setDirection((height > 20 || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof fgnepasti.wonderful.ui.interfaces.newdropdown.ClickGui || mc.currentScreen instanceof ClickGui) ? Direction.FORWARDS : Direction.BACKWARDS);

        GlStateManager.pushMatrix();
        GlStateManager.translated(posX + (width / 2), posY + (height / 2), 0);
        GlStateManager.scaled((float) animation.getOutput(), (float) animation.getOutput(), (float) animation.getOutput());
        GlStateManager.translated(-(posX + (width / 2)), -(posY + (height / 2)), 0);
        DisplayUtils.drawGlow(posX,posY,width,height,4, ColorUtils.rgba(29, 31, 42, 150));

        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height + 24);


        Fonts.sf_semibold.drawCenteredText(ms, "Cooldowns", posX + width / 2, posY + padding - 0.5f, ColorUtils.rgb(255, 255, 255), fontSize, 0.1f);
        fgnepasti.wonderful.utils.font.Fonts.oldNextGen[16].drawString(eventDisplay.getMatrixStack(), "O", posX + 6, posY + padding + 2f, ColorUtils.rgb(255, 255, 255));

        posY += fontSize + padding * 2;

        float maxWidth = Fonts.sf_semibold.getWidth("Cooldowns", fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
        DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY - 2, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f)));


        posY += 3f;

        Set<Item> acitveCooldowns = new HashSet<>();

        for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

//            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
//                print("Тута кд на айтем: " + itemStack.getItem().getName().getString());
//            }z


            if (!itemStack.isEmpty() && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
                if (!acitveCooldowns.contains(itemStack.getItem())) {
                    renderCooldownItem(ms, posX, posY, fontSize, padding, itemStack, mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()), posY);

                    acitveCooldowns.add(itemStack.getItem());
                    //print("инфо о кд: " + itemStack + " " + mc.player.getCooldownTracker().getCooldown(itemStack.getItem(), eventDisplay.getPartialTicks()));
                    posY += (fontSize + padding);
                    localHeight += (fontSize + padding);
                }
            }
        }


        Scissor.unset();
        Scissor.pop();
        GlStateManager.popMatrix();
        width = MathUtil.lerp(width, Math.max(maxWidth, 80.0f), 20.0f);
        height = MathUtil.lerp(height, Math.max(localHeight + 2.5f, 10.0f), 50.0f);
        dragging.setWidth(width);
        dragging.setHeight(height);
    }

    private float renderCooldownItem(MatrixStack ms, float posX, float posY, float fontSize, float padding, ItemStack itemStack, float cooldownDuration, float currentPosY) {
        boolean isItemInInventory = mc.player.inventory.hasItemStack(itemStack);
        long currentTime = System.currentTimeMillis();
        String cooldownText = "";

        if (isItemInInventory && mc.player.getCooldownTracker().hasCooldown(itemStack.getItem())) {
            if (startTime == -1) {
                startTime = currentTime;
            }
            float cooldownTicks = cooldownDuration;
            cooldownText = cooldownTicks + "";

            if (cooldownTicks <= 0) {
                startTime = 0;
            }
        }

        else if (isItemInInventory) {
            cooldownText = "";
        }

        String itemName = itemStack.getItem().getName().getString();
        if (isItemInInventory) {
            if (itemStack.getItem() == Items.ENCHANTED_GOLDEN_APPLE) {
                itemName = "Чарка";
            } else if (itemStack.getItem() == Items.ENDER_EYE) {
                itemName = "Дезорент";
            } else if (itemStack.getItem() == Items.NETHERITE_SCRAP) {
                itemName = "Трапка";
            } else if (itemStack.getItem() == Items.SUGAR) {
                itemName = "Явная пыль";
            } else if (itemStack.getItem() == Items.ENDER_PEARL) {
                itemName = "Эндер-перл";
            } else if (itemStack.getItem() == Items.GOLDEN_APPLE) {
                itemName = "Гэпл";
            } else if (itemStack.getItem() == Items.DRIED_KELP) {
                itemName = "Пласт";
            }

            if (!cooldownText.isEmpty()) {
                Style style = Wonderful.getInstance().getStyleManager().getCurrentStyle();
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30, 2.5f, 1, ColorUtils.rgb(12, 12, 12));
                DisplayUtils.drawRoundedRect(posX + padding + 52.5f - 10, currentPosY + 5, 30 * cooldownDuration, 2.5f, 1, style.getFirstColor().getRGB());
            }
        }
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX + padding, currentPosY, 50 - 10, 10);
        Fonts.sf_medium.drawText(ms, itemName, posX + padding, currentPosY + 2.5f,  ColorUtils.rgba(255, 255, 255, 255), fontSize, 0.1f);
        Scissor.unset();
        Scissor.pop();
        currentPosY += (padding / 1.2f);
        return currentPosY;
    }
}
НУ ЗАЧЕМ ТЫ ИМ ДАЕШЬ ЧТО ТО ?
 
эта темка давно у меня была, но все равно норм сделал
 
Не работает
 
Назад
Сверху Снизу