Advertisement
4epB9Ik

Untitled

Sep 1st, 2023
886
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.92 KB | None | 0 0
  1. package net.mcskill.mod.PixelmonUI.side.client.gui;
  2.  
  3. import java.awt.Color;
  4.  
  5. import gg.essential.elementa.UIComponent;
  6. import gg.essential.elementa.components.LabelComponent;
  7. import gg.essential.elementa.components.UIBlock;
  8. import gg.essential.elementa.constraints.CenterConstraint;
  9. import gg.essential.elementa.constraints.ChildBasedSizeConstraint;
  10. import gg.essential.elementa.constraints.PixelConstraint;
  11. import gg.essential.elementa.constraints.animation.AnimatingConstraints;
  12. import gg.essential.elementa.constraints.animation.Animations;
  13. import gg.essential.elementa.effects.ScissorEffect;
  14. import gg.essential.universal.UMatrixStack;
  15.  
  16. public class Slider extends UIBlock{
  17.    
  18.     public float min;
  19.     public float max;
  20.     public float value = 0.7f;
  21.     public String title = "";
  22.    
  23.     public Color bg_color = new Color(255, 255, 255, 100);
  24.     public Color value_color = new Color(0, 0, 0, 100);
  25.    
  26.     final UIBlock body;
  27.     final LabelComponent title_label;
  28.     final UIBlock button_plus;
  29.     final LabelComponent btn_p_lbl;
  30.     final LabelComponent value_label;
  31.     final UIBlock button_minus;
  32.     final LabelComponent btn_m_lbl;
  33.  
  34.    
  35.     public Slider(float min, float max, float def_value, String title) {
  36.        
  37.         //super();
  38.         //System.out.println(this.getWidth());
  39.         this.title = title;
  40.         this.min = min;
  41.         this.max = max;
  42.         this.value = def_value;
  43.        
  44.         body = new UIBlock();
  45.        
  46.         title_label = new LabelComponent(title);
  47.        
  48.         button_plus = new UIBlock();
  49.  
  50.        
  51.        
  52.        
  53.        
  54.         btn_p_lbl = new LabelComponent("+");
  55.        
  56.         value_label = new LabelComponent(String.valueOf(def_value));
  57.        
  58.         button_minus = new UIBlock();
  59.        
  60.         btn_m_lbl = new LabelComponent("-");
  61.        
  62.        
  63.        
  64.         this.addChild(body);
  65.         body.addChild(title_label);
  66.         body.addChild(button_plus);
  67.         body.addChild(value_label);
  68.         body.addChild(button_minus);
  69.        
  70.         button_plus.addChild(btn_p_lbl);
  71.         button_minus.addChild(btn_m_lbl);
  72.        
  73.         /*
  74.         this.bg = new UIBlock();
  75.         this.addChild(bg);
  76.         bg.setWidth(new PixelConstraint(this.getWidth()));
  77.        
  78.         bg.setHeight(new PixelConstraint(this.getHeight()));
  79.         bg.setX(new PixelConstraint(0));
  80.         bg.setY(new PixelConstraint(0));
  81.         bg.setColor(bg_color);
  82.        
  83.         //bg.setChildOf(this);
  84.        
  85.         */
  86.        
  87.        
  88.        
  89.     }
  90.     @Override
  91.     public void draw(final UMatrixStack matrixStack) {
  92.        
  93.         //System.out.println(this.getParent().toString());
  94.         //bg.draw();
  95.         //System.out.println("Рисует");
  96.         //System.out.println(this.getWidth());
  97.         //LabelComponent title_label = new LabelComponent(title);
  98.         title_label.setTextScale(new PixelConstraint(7.7f));
  99.         title_label.setX(new PixelConstraint(3));
  100.         //title_label.setChildOf(this);
  101.        
  102.         //UIBlock button_plus = new UIBlock();
  103.         button_plus.setWidth(new PixelConstraint(10));
  104.         button_plus.setHeight(new PixelConstraint(10));
  105.         button_plus.setX(new PixelConstraint(this.getWidth() - 10));
  106.         button_plus.setY(new PixelConstraint(-1.5f));
  107.         button_plus.setColor(new Color(255,255,255,50));
  108.         //LabelComponent btn_p_lbl = new LabelComponent("+");
  109.         btn_p_lbl.setTextScale(new PixelConstraint(title_label.getTextScale()));
  110.         btn_p_lbl.setColor(Color.green);
  111.         btn_p_lbl.setX(new PixelConstraint((button_plus.getWidth() / 2) - (btn_p_lbl.getTextWidth() / 2) - 0.16f));
  112.         btn_p_lbl.setY(new PixelConstraint((button_plus.getHeight() / 2) - 3.6f));
  113.        
  114.         //button_plus.setChildOf(this);
  115.         //btn_p_lbl.setChildOf(button_plus);
  116.        
  117.         //LabelComponent value_label = new LabelComponent();
  118.         value_label.setText(String.valueOf(value));
  119.         value_label.setX(new PixelConstraint(this.getWidth() - (button_plus.getWidth() + 15)));
  120.         value_label.setTextScale(new PixelConstraint(title_label.getTextScale()));
  121.         //value_label.setChildOf(this);
  122.        
  123.         //UIBlock button_minus = new UIBlock();
  124.         button_minus.setWidth(new PixelConstraint(10));
  125.         button_minus.setHeight(new PixelConstraint(10));
  126.         button_minus.setX(new PixelConstraint(this.getWidth() - (button_plus.getWidth() + value_label.getTextWidth() + 20)));
  127.         button_minus.setY(new PixelConstraint(-1.5f));
  128.         button_minus.setColor(new Color(255,0,0,50));
  129.         //LabelComponent btn_m_lbl = new LabelComponent("-");
  130.         btn_m_lbl.setTextScale(new PixelConstraint(title_label.getTextScale()));
  131.         btn_m_lbl.setColor(Color.red);
  132.         btn_m_lbl.setX(new PixelConstraint((button_minus.getWidth() / 2) - (btn_m_lbl.getTextWidth() / 2) - 0.25f));
  133.         btn_m_lbl.setY(new PixelConstraint((button_minus.getHeight() / 2) - 2.5f));
  134.        
  135.         //button_plus.enableEffect(new ScissorEffect());
  136.        
  137.        
  138.        
  139.        
  140.         //button_minus.setChildOf(this);
  141.         //btn_m_lbl.setChildOf(button_minus);
  142.         body.draw();
  143.         button_plus.onMouseClickConsumer(uiClickEvent -> {
  144.                
  145.            
  146.             increment(0.1f);
  147.             System.out.println("Button pressed, value is: " + value);
  148.         });
  149.        
  150.     }
  151.  
  152.     public float get_value() {
  153.         return value;
  154.     }
  155.     private boolean increment(float inc) {
  156.         if (value + inc > max || value + inc < min) {
  157.            return false;
  158.         } else {
  159.            value += inc;
  160.            return true;
  161.         }
  162.     }
  163. }
  164.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement