-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Возможно многие видели визуальное изменение хотбара https://yougame.biz/threads/320786/ (noad), отталкиваясь от его рендера сделал рендер для арморхуда + сделал драггинг, что бы те, кому надо могли перемещать его в удобное для себя место.
SS -
P.S. Размер зависит от кол-ва надетой брони, если брони нету, арморхуд не показывается, анимации нету
SS -
Пожалуйста, авторизуйтесь для просмотра ссылки.
code:
package im.expensive.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.events.EventDisplay;
import im.expensive.functions.impl.render.HUD;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.inventory.EquipmentSlotType;
import im.expensive.utils.math.Vector4i;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class ArmorRenderer implements ElementRenderer {
final Dragging dragging;
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
Minecraft mc = Minecraft.getInstance();
float posX = dragging.getX();
float posY = dragging.getY();
int armorCount = 0;
for (EquipmentSlotType slot : EquipmentSlotType.values()) {
if (slot.getSlotType() == EquipmentSlotType.Group.ARMOR) {
ItemStack itemStack = mc.player.getItemStackFromSlot(slot);
if (!itemStack.isEmpty()) {
armorCount++;
}
}
}
if (armorCount == 0) {
return;
}
float targetWidth = armorCount * (16 + 2);
float height = 22;
float adjustedPosX = posX - 4;
drawStyledRect(adjustedPosX, posY, targetWidth + 8, height, 3.0f, 1.0f, 2130706432);
EquipmentSlotType[] armorSlots = {
EquipmentSlotType.FEET,
EquipmentSlotType.LEGS,
EquipmentSlotType.CHEST,
EquipmentSlotType.HEAD
};
float currentPosX = posX;
for (EquipmentSlotType slot : armorSlots) {
ItemStack itemStack = mc.player.getItemStackFromSlot(slot);
if (itemStack.isEmpty()) {
continue;
}
mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, (int) currentPosX, (int) posY + 3);
mc.getItemRenderer().renderItemOverlayIntoGUI(mc.fontRenderer, itemStack, (int) currentPosX, (int) posY + 3, null);
currentPosX += 16 + 2;
}
dragging.setWidth(targetWidth);
dragging.setHeight(height);
}
private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(radius, radius, radius, radius), colors);
DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
}
}