Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Дек 2023
- Сообщения
- 503
- Реакции
- 3
- Выберите загрузчик игры
- Vanilla
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Решил чучуть порадовать вас. Сливаю кд на любой предмет с отображением кд в виде полосочки,
по сути любая база, но рендер 3.1
SS=
DW=
по сути любая база, но рендер 3.1
SS=
DW=
Cooldowns:
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;
}
}