Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

  1. Home
  2. Kotlin/Java
  3. A SelfInfo as Akrien Client

A SelfInfo as Akrien Client

Scheduled Pinned Locked Moved Kotlin/Java
6 Posts 4 Posters 1.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • YounKooY Offline
    YounKooY Offline
    YounKoo
    wrote on last edited by
    #1

    I'm using novoline's font system, you can use LiquidBounce instead, note that novoline's font size is twice as large as Liquidbounce's

    Effect image:2022-11-24_22.53.11.png

    Code:

    @ElementInfo(name = "SelfInfo")
    public class SelfInfo extends Element {
        //code by younkoo(littledye or 情染)
        public static IntegerValue rRed = new IntegerValue("Red", 0, 0, 255);
        public static IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255);
        public static IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255);
    
        //fix jitter
        public IntegerValue indx = new IntegerValue("noting",120,0,1000);
        public IntegerValue indy = new IntegerValue("noting2",80,0,1000);
    
        public static Color mainColor() {
            return new Color(rRed.get(), rGreen.get(), rBlue.get());
        }
    
        private double armorBarWidth;
    
        private double hurttimeBarWidth;
    
        private double bpsBarWidth;
    
        private double healthBarWidth;
    
        public int x2 = indx.get(), y3 = indy.get();
    
        TimerUtil timerHelper = new TimerUtil();
    
        ScaledResolution sr = new ScaledResolution(mc);
        final float scaledWidth = sr.getScaledWidth();
        final float scaledHeight = sr.getScaledHeight();
    
        //code by younkoo(littledye or 情染)
        //code by younkoo(littledye or 情染)
        //code by younkoo(littledye or 情染)
    
        @Override
        public Border drawElement(float partialTicks) {
            double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ;
            double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX;
            double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ);
            double currSpeed = lastDist * 15.3571428571D / 4;
    
            final float xX = scaledWidth / 2.0f -x2;
            final float yX = scaledHeight / 2.0f + y3;
            VisualBase.drawNewRect(xX + 4.5, yX  + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB());
            VisualBase.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB());
            VisualBase.drawNewRect(xX + 5, yX  + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB());
            VisualBase.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB());
            VisualBase.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB());
            VisualBase.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB());
            VisualBase.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB());
            VisualBase.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB());
    
            Fonts.SF.SF_14.SF_14.drawString("Indicators", xX + 37, yX + 202 - 406, -1);
    
            // armor
            final float armorValue = mc.thePlayer.getTotalArmorValue();
            double armorPercentage = armorValue / 20;
            armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0);
    
            final double armorWidth = 51 * armorPercentage;
            this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481);
            VisualUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB());
    
            Fonts.SF.SF_14.SF_14.drawString("Armor", xX + 8, yX + 211 - 406, -1);
    
            // HurtTime
            double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6);
            final double hurttimeWidth = 51.0 * hurttimePercentage;
            this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481);
            VisualUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB());
    
            Fonts.SF.SF_14.SF_14.drawString("HurtTime", xX + 8, yX + 220 - 406, -1);
    
            // HurtTime
            double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0);
            final double bpsBarWidth = 51.0 * bpsPercentage;
            this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481);
    
            VisualUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB());
    
            Fonts.SF.SF_14.SF_14.drawString("BPS", xX + 8, yX + 229 - 406, -1);
    
            // HurtTime
            final float health = mc.thePlayer.getHealth();
            double hpPercentage = health / mc.thePlayer.getMaxHealth();
            hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0);
            final double hpWidth = 51.0 * hpPercentage;
            final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f);
    
            if (timerHelper.hasReached(15L)) {
                this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481);
                timerHelper.reset();
            }
    
            VisualUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB());
    
            Fonts.SF.SF_14.SF_14.drawString("HP", xX + 8, yX + 238 - 406, -1);
            return new Border(98,-8,194,39);
        }
    
    }
    

    DrawNewRect

    public static void drawNewRect(double left, double top, double right, double bottom, int color) {
            if (left < right) {
                double i = left;
                left = right;
                right = i;
            }
            if (top < bottom) {
                double j = top;
                top = bottom;
                bottom = j;
            }
            float f3 = (float)(color >> 24 & 0xFF) / 255.0f;
            float f = (float)(color >> 16 & 0xFF) / 255.0f;
            float f1 = (float)(color >> 8 & 0xFF) / 255.0f;
            float f2 = (float)(color & 0xFF) / 255.0f;
            Tessellator tessellator = Tessellator.getInstance();
            WorldRenderer vertexbuffer = tessellator.getWorldRenderer();
            GlStateManager.enableBlend();
            GlStateManager.disableTexture2D();
            GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1);
            GlStateManager.color(f, f1, f2, f3);
            vertexbuffer.begin(7, DefaultVertexFormats.POSITION);
            vertexbuffer.pos(left, bottom, 0.0).endVertex();
            vertexbuffer.pos(right, bottom, 0.0).endVertex();
            vertexbuffer.pos(right, top, 0.0).endVertex();
            vertexbuffer.pos(left, top, 0.0).endVertex();
            tessellator.draw();
            GlStateManager.enableTexture2D();
            GlStateManager.disableBlend();
        }
    

    Animate

    public static double animate(double target, double current, double speed) {
            boolean larger;
            boolean bl = larger = target > current;
            if (speed < 0.0) {
                speed = 0.0;
            } else if (speed > 1.0) {
                speed = 1.0;
            }
            double dif = Math.max(target, current) - Math.min(target, current);
            double factor = dif * speed;
            if (factor < 0.1) {
                factor = 0.1;
            }
            current = larger ? (current += factor) : (current -= factor);
            return current;
        }
    
    P G 2 Replies Last reply
    0
    • YounKooY YounKoo

      I'm using novoline's font system, you can use LiquidBounce instead, note that novoline's font size is twice as large as Liquidbounce's

      Effect image:2022-11-24_22.53.11.png

      Code:

      @ElementInfo(name = "SelfInfo")
      public class SelfInfo extends Element {
          //code by younkoo(littledye or 情染)
          public static IntegerValue rRed = new IntegerValue("Red", 0, 0, 255);
          public static IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255);
          public static IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255);
      
          //fix jitter
          public IntegerValue indx = new IntegerValue("noting",120,0,1000);
          public IntegerValue indy = new IntegerValue("noting2",80,0,1000);
      
          public static Color mainColor() {
              return new Color(rRed.get(), rGreen.get(), rBlue.get());
          }
      
          private double armorBarWidth;
      
          private double hurttimeBarWidth;
      
          private double bpsBarWidth;
      
          private double healthBarWidth;
      
          public int x2 = indx.get(), y3 = indy.get();
      
          TimerUtil timerHelper = new TimerUtil();
      
          ScaledResolution sr = new ScaledResolution(mc);
          final float scaledWidth = sr.getScaledWidth();
          final float scaledHeight = sr.getScaledHeight();
      
          //code by younkoo(littledye or 情染)
          //code by younkoo(littledye or 情染)
          //code by younkoo(littledye or 情染)
      
          @Override
          public Border drawElement(float partialTicks) {
              double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ;
              double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX;
              double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ);
              double currSpeed = lastDist * 15.3571428571D / 4;
      
              final float xX = scaledWidth / 2.0f -x2;
              final float yX = scaledHeight / 2.0f + y3;
              VisualBase.drawNewRect(xX + 4.5, yX  + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX  + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("Indicators", xX + 37, yX + 202 - 406, -1);
      
              // armor
              final float armorValue = mc.thePlayer.getTotalArmorValue();
              double armorPercentage = armorValue / 20;
              armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0);
      
              final double armorWidth = 51 * armorPercentage;
              this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481);
              VisualUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("Armor", xX + 8, yX + 211 - 406, -1);
      
              // HurtTime
              double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6);
              final double hurttimeWidth = 51.0 * hurttimePercentage;
              this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481);
              VisualUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("HurtTime", xX + 8, yX + 220 - 406, -1);
      
              // HurtTime
              double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0);
              final double bpsBarWidth = 51.0 * bpsPercentage;
              this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481);
      
              VisualUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("BPS", xX + 8, yX + 229 - 406, -1);
      
              // HurtTime
              final float health = mc.thePlayer.getHealth();
              double hpPercentage = health / mc.thePlayer.getMaxHealth();
              hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0);
              final double hpWidth = 51.0 * hpPercentage;
              final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f);
      
              if (timerHelper.hasReached(15L)) {
                  this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481);
                  timerHelper.reset();
              }
      
              VisualUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("HP", xX + 8, yX + 238 - 406, -1);
              return new Border(98,-8,194,39);
          }
      
      }
      

      DrawNewRect

      public static void drawNewRect(double left, double top, double right, double bottom, int color) {
              if (left < right) {
                  double i = left;
                  left = right;
                  right = i;
              }
              if (top < bottom) {
                  double j = top;
                  top = bottom;
                  bottom = j;
              }
              float f3 = (float)(color >> 24 & 0xFF) / 255.0f;
              float f = (float)(color >> 16 & 0xFF) / 255.0f;
              float f1 = (float)(color >> 8 & 0xFF) / 255.0f;
              float f2 = (float)(color & 0xFF) / 255.0f;
              Tessellator tessellator = Tessellator.getInstance();
              WorldRenderer vertexbuffer = tessellator.getWorldRenderer();
              GlStateManager.enableBlend();
              GlStateManager.disableTexture2D();
              GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1);
              GlStateManager.color(f, f1, f2, f3);
              vertexbuffer.begin(7, DefaultVertexFormats.POSITION);
              vertexbuffer.pos(left, bottom, 0.0).endVertex();
              vertexbuffer.pos(right, bottom, 0.0).endVertex();
              vertexbuffer.pos(right, top, 0.0).endVertex();
              vertexbuffer.pos(left, top, 0.0).endVertex();
              tessellator.draw();
              GlStateManager.enableTexture2D();
              GlStateManager.disableBlend();
          }
      

      Animate

      public static double animate(double target, double current, double speed) {
              boolean larger;
              boolean bl = larger = target > current;
              if (speed < 0.0) {
                  speed = 0.0;
              } else if (speed > 1.0) {
                  speed = 1.0;
              }
              double dif = Math.max(target, current) - Math.min(target, current);
              double factor = dif * speed;
              if (factor < 0.1) {
                  factor = 0.1;
              }
              current = larger ? (current += factor) : (current -= factor);
              return current;
          }
      
      P Offline
      P Offline
      P1ayerLk_ 0
      wrote on last edited by
      #2

      very sexy indicators, copied

      YounKooY 1 Reply Last reply
      0
      • P P1ayerLk_ 0

        very sexy indicators, copied

        YounKooY Offline
        YounKooY Offline
        YounKoo
        wrote on last edited by
        #3

        @P1ayerLk_-0 thx

        1 Reply Last reply
        0
        • ukvaporwavesU Offline
          ukvaporwavesU Offline
          ukvaporwaves
          wrote on last edited by
          #4

          nice information ver useful

          YounKooY 1 Reply Last reply
          0
          • ukvaporwavesU ukvaporwaves

            nice information ver useful

            YounKooY Offline
            YounKooY Offline
            YounKoo
            wrote on last edited by
            #5

            @ukvaporwaves thx

            1 Reply Last reply
            0
            • YounKooY YounKoo

              I'm using novoline's font system, you can use LiquidBounce instead, note that novoline's font size is twice as large as Liquidbounce's

              Effect image:2022-11-24_22.53.11.png

              Code:

              @ElementInfo(name = "SelfInfo")
              public class SelfInfo extends Element {
                  //code by younkoo(littledye or 情染)
                  public static IntegerValue rRed = new IntegerValue("Red", 0, 0, 255);
                  public static IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255);
                  public static IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255);
              
                  //fix jitter
                  public IntegerValue indx = new IntegerValue("noting",120,0,1000);
                  public IntegerValue indy = new IntegerValue("noting2",80,0,1000);
              
                  public static Color mainColor() {
                      return new Color(rRed.get(), rGreen.get(), rBlue.get());
                  }
              
                  private double armorBarWidth;
              
                  private double hurttimeBarWidth;
              
                  private double bpsBarWidth;
              
                  private double healthBarWidth;
              
                  public int x2 = indx.get(), y3 = indy.get();
              
                  TimerUtil timerHelper = new TimerUtil();
              
                  ScaledResolution sr = new ScaledResolution(mc);
                  final float scaledWidth = sr.getScaledWidth();
                  final float scaledHeight = sr.getScaledHeight();
              
                  //code by younkoo(littledye or 情染)
                  //code by younkoo(littledye or 情染)
                  //code by younkoo(littledye or 情染)
              
                  @Override
                  public Border drawElement(float partialTicks) {
                      double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ;
                      double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX;
                      double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ);
                      double currSpeed = lastDist * 15.3571428571D / 4;
              
                      final float xX = scaledWidth / 2.0f -x2;
                      final float yX = scaledHeight / 2.0f + y3;
                      VisualBase.drawNewRect(xX + 4.5, yX  + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB());
                      VisualBase.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB());
                      VisualBase.drawNewRect(xX + 5, yX  + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB());
                      VisualBase.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB());
                      VisualBase.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB());
                      VisualBase.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB());
                      VisualBase.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB());
                      VisualBase.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB());
              
                      Fonts.SF.SF_14.SF_14.drawString("Indicators", xX + 37, yX + 202 - 406, -1);
              
                      // armor
                      final float armorValue = mc.thePlayer.getTotalArmorValue();
                      double armorPercentage = armorValue / 20;
                      armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0);
              
                      final double armorWidth = 51 * armorPercentage;
                      this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481);
                      VisualUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB());
              
                      Fonts.SF.SF_14.SF_14.drawString("Armor", xX + 8, yX + 211 - 406, -1);
              
                      // HurtTime
                      double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6);
                      final double hurttimeWidth = 51.0 * hurttimePercentage;
                      this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481);
                      VisualUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB());
              
                      Fonts.SF.SF_14.SF_14.drawString("HurtTime", xX + 8, yX + 220 - 406, -1);
              
                      // HurtTime
                      double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0);
                      final double bpsBarWidth = 51.0 * bpsPercentage;
                      this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481);
              
                      VisualUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB());
              
                      Fonts.SF.SF_14.SF_14.drawString("BPS", xX + 8, yX + 229 - 406, -1);
              
                      // HurtTime
                      final float health = mc.thePlayer.getHealth();
                      double hpPercentage = health / mc.thePlayer.getMaxHealth();
                      hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0);
                      final double hpWidth = 51.0 * hpPercentage;
                      final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f);
              
                      if (timerHelper.hasReached(15L)) {
                          this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481);
                          timerHelper.reset();
                      }
              
                      VisualUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB());
              
                      Fonts.SF.SF_14.SF_14.drawString("HP", xX + 8, yX + 238 - 406, -1);
                      return new Border(98,-8,194,39);
                  }
              
              }
              

              DrawNewRect

              public static void drawNewRect(double left, double top, double right, double bottom, int color) {
                      if (left < right) {
                          double i = left;
                          left = right;
                          right = i;
                      }
                      if (top < bottom) {
                          double j = top;
                          top = bottom;
                          bottom = j;
                      }
                      float f3 = (float)(color >> 24 & 0xFF) / 255.0f;
                      float f = (float)(color >> 16 & 0xFF) / 255.0f;
                      float f1 = (float)(color >> 8 & 0xFF) / 255.0f;
                      float f2 = (float)(color & 0xFF) / 255.0f;
                      Tessellator tessellator = Tessellator.getInstance();
                      WorldRenderer vertexbuffer = tessellator.getWorldRenderer();
                      GlStateManager.enableBlend();
                      GlStateManager.disableTexture2D();
                      GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1);
                      GlStateManager.color(f, f1, f2, f3);
                      vertexbuffer.begin(7, DefaultVertexFormats.POSITION);
                      vertexbuffer.pos(left, bottom, 0.0).endVertex();
                      vertexbuffer.pos(right, bottom, 0.0).endVertex();
                      vertexbuffer.pos(right, top, 0.0).endVertex();
                      vertexbuffer.pos(left, top, 0.0).endVertex();
                      tessellator.draw();
                      GlStateManager.enableTexture2D();
                      GlStateManager.disableBlend();
                  }
              

              Animate

              public static double animate(double target, double current, double speed) {
                      boolean larger;
                      boolean bl = larger = target > current;
                      if (speed < 0.0) {
                          speed = 0.0;
                      } else if (speed > 1.0) {
                          speed = 1.0;
                      }
                      double dif = Math.max(target, current) - Math.min(target, current);
                      double factor = dif * speed;
                      if (factor < 0.1) {
                          factor = 0.1;
                      }
                      current = larger ? (current += factor) : (current -= factor);
                      return current;
                  }
              
              G Offline
              G Offline
              Gabriel
              wrote on last edited by
              #6

              @YounKoo I am aware that this is a necropost, but I have a question. Can you give me the Novoline font renderer code (the one you ported to LiquidBounce)? It looks way better.

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              About
              • Terms of Service
              • Privacy Policy
              • Status
              • Contact Us
              Downloads
              • Releases
              • Source code
              • License
              Docs
              • Tutorials
              • CustomHUD
              • AutoSettings
              • ScriptAPI
              Community
              • Forum
              • Guilded
              • YouTube
              • Twitter
              • D.Tube
              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups