Начинающий
			
			
				
					
				
			
		- Статус
 - Оффлайн
 
- Регистрация
 - 9 Янв 2023
 
- Сообщения
 - 3
 
- Реакции
 - 0
 
			
				Keybinds:
			
		
		
		package im.expensive.ui.display.impl;
import com.jhlabs.image.AbstractBufferedImageOp;
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;
import java.awt.*;
import static java.awt.SystemColor.text;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class KeyBindRenderer implements ElementRenderer {
    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 = 7f;
        float padding = 5;
        float iconSize = 0;
        float localPosX = posX + iconSize + padding * 1;
        iconSize = 1;
        ITextComponent name = GradientUtil.gradient("Keybinds");
       
        float textWidth = Fonts.sfui.getWidth(String.valueOf(text), fontSize);
        float localPosX2 = posX + iconSize + padding * 1;
        Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
      
         DisplayUtils.drawShadow(posX, posY, width , height, 10, style.getFirstColor().getRGB(), style.getSecondColor().getRGB());
         drawStyledRect(posX, posY, width, height, 0);
      
        Scissor.push();
        Scissor.setFromComponentCoordinates(posX, posY, width, height);
        Fonts.sfbold.drawText(ms, "Keybinds ", posX + 20f, posY + 7f, -1, 7.0f);
        
        posY += fontSize + padding * 2;
        float maxWidth = Fonts.sfMedium.getWidth(name, fontSize) + padding * 2;
        float localHeight = fontSize + padding * 2;
       
        posY += 3f;
        DisplayUtils.drawImage(new ResourceLocation("expensive/images/hud/hotkey.png"), posX + 3, posY - 17.5f, 14, 14,  ColorUtils.getColor(0));
        
        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.sfbold.drawText(ms, nameText, posX + padding, posY + 0.5f, ColorUtils.rgba(255, 255, 255, (int) (255 * f.getAnimation().getValue())), fontSize);
            Fonts.sfMedium.drawText(ms, bindText, posX + width - padding - bindWidth, posY + 0.5f, ColorUtils.rgba(255, 0, 0, (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, 95);
        height = localHeight + 2.5f;
        dragging.setWidth(width);
        dragging.setHeight(height);
    }
    private void drawStyledRect(float x,
                                float y,
                                float width,
                                float height,
                                float radius) {
        int alpha = 200; // Значение альфа-канала
        
        Color blurColor = new Color(20, 20, 20, alpha); // Черный цвет с прозрачностью
      
        DisplayUtils.drawRoundedRect(x, y, width, height, radius + 3, blurColor.getRGB());
        float posx2 = 0;
        float posy2 = 0;
        float width2 = 0;
        float height2 = 0;
      
        DisplayUtils.drawRoundedRect(x + 0, y + 0, width2 + 95, height2 + 18, radius + 5, ColorUtils.rgba(25, 25, 25, 255));
    }
}
	SS:
	Пожалуйста, авторизуйтесь для просмотра ссылки.
				
			

