Начинающий
- Статус
- Оффлайн
- Регистрация
- 16 Ноя 2023
- Сообщения
- 66
- Реакции
- 0
+rep сделай худ в этом стиле)Всем привет моя первая работа (прошу не хейтить потому-что только начинаю)
SS:не кликабельно
Посмотреть вложение 287723
DW:
Код:package im.expensive.ui.display.impl; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.events.EventDisplay; import im.expensive.functions.api.Function; import im.expensive.ui.display.ElementRenderer; import im.expensive.ui.styles.Style; import im.expensive.utils.client.KeyStorage; import im.expensive.utils.drag.Dragging; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.Scissor; import im.expensive.utils.render.font.Fonts; import im.expensive.utils.text.GradientUtil; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; @FieldDefaults(level = AccessLevel.PRIVATE) @RequiredArgsConstructor public class KeyBindRenderer implements ElementRenderer { final ResourceLocation logo = new ResourceLocation("expensive/images/hud/keyboard.png"); final Dragging dragging; float width; float height; @Override public void render(EventDisplay eventDisplay) { MatrixStack ms = eventDisplay.getMatrixStack(); float posX = dragging.getX(); float posY = dragging.getY(); float fontSize = 7.2f; float padding = 5; ITextComponent name = GradientUtil.gradient("Hotkeys"); Style style = Expensive.getInstance().getStyleManager().getCurrentStyle(); DisplayUtils.drawShadow(posX, posY, width, height, 10, style.getFirstColor().getRGB(), style.getSecondColor().getRGB()); drawStyledRect(posX, posY, width, height, 4); float iconSize = 10; // Иконка перемещена вправо DisplayUtils.drawImage(logo, posX + width - iconSize - padding, posY + padding, iconSize, iconSize, ColorUtils.rgb(255, 255, 255)); Scissor.push(); Scissor.setFromComponentCoordinates(posX, posY, width, height); // Надпись Hotkeys сдвинута левее на 5 пикселей Fonts.sfui.drawCenteredText(ms, name, posX + padding + 17, posY + padding + 0.7f, fontSize); posY += fontSize + padding * 2; float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2; float localHeight = fontSize + padding * 2; DisplayUtils.drawRectHorizontalW(posX + 0.5f, posY, width - 1, 2.5f, 3, ColorUtils.rgba(0, 0, 0, (int) (255 * 0.25f))); posY += 3f; for (Function f : Expensive.getInstance().getFunctionRegistry().getFunctions()) { f.getAnimation().update(); if (!(f.getAnimation().getValue() > 0) || f.getBind() == 0) continue; String nameText = f.getName(); float nameWidth = Fonts.sfMedium.getWidth(nameText, fontSize); String bindText = "[" + KeyStorage.getKey(f.getBind()) + "]"; float bindWidth = Fonts.sfMedium.getWidth(bindText, fontSize); float localWidth = nameWidth + bindWidth + padding * 3; Fonts.sfMedium.drawText(ms, nameText, posX + padding, posY + 0.5f, ColorUtils.rgba(210, 210, 210, (int) (255 * f.getAnimation().getValue())), fontSize); Fonts.sfMedium.drawText(ms, bindText, posX + width - padding - bindWidth + 1, posY + 0.5f, ColorUtils.rgba(210, 210, 210, (int) (255 * f.getAnimation().getValue())), fontSize); if (localWidth > maxWidth) { maxWidth = localWidth; } posY += (float) ((fontSize + padding) * f.getAnimation().getValue()); localHeight += (float) ((fontSize + padding) * f.getAnimation().getValue()); } Scissor.unset(); Scissor.pop(); width = Math.max(maxWidth, 80); height = localHeight + 2.5f; dragging.setWidth(width); dragging.setHeight(height); } private void drawStyledRect(float x, float y, float width, float height, float radius) { DisplayUtils.drawRoundedRect(x - 0.5f, y - 0.5f, width + 1, height + 1, radius + 0.5f, ColorUtils.getColor(0)); // outline DisplayUtils.drawRoundedRect(x, y, width, height, radius, ColorUtils.rgba(29, 33, 44, 255)); // новый цвет фона } }