Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.54 KB | None | 0 0
  1. // Author: Tommy
  2.  
  3. local function drawH(_font)
  4. {
  5.     local size = Draw(0,0, "Hello World")
  6.     size.font = _font;
  7.     return size.heightPx;
  8. }
  9.  
  10. function toColor(r, g, b)
  11. {
  12.     return "{#"+rgbToHex(r, g, b)+"}";
  13. }
  14.  
  15. class G_Draw
  16. {
  17.     constructor(_x, _y, _font, _text, _r = 255, _g = 255, _b = 255)
  18.     {
  19.         draw = {
  20.             d = [],
  21.             text = [],
  22.             r = [],
  23.             g = [],
  24.             b = [],
  25.             x = [],
  26.             y = [],
  27.             dist_x = [],
  28.             dist_y = [],
  29.  
  30.             font = _font,
  31.             default_r = _r,
  32.             default_g = _g,
  33.             default_b = _b,
  34.         };
  35.        
  36.         local pos = {
  37.             x = _x,
  38.             y = _y,
  39.             dis_x = 0,
  40.             dis_y = 0,
  41.         };
  42.        
  43.         if(_text.find("~n") == null && _text.find("{#") == null)
  44.         {
  45.             draw.text.append(_text)
  46.             draw.r.append(draw.default_r);
  47.             draw.g.append(draw.default_g);
  48.             draw.b.append(draw.default_b);
  49.             draw.x.append(pos.x);
  50.             draw.y.append(pos.y);
  51.             draw.dist_x.append(pos.dis_x);
  52.             draw.dist_y.append(pos.dis_y);
  53.  
  54.         }else _text = _text + "~n";
  55.  
  56.         local convert = _text;
  57.  
  58.         local newline = 0;
  59.         local lastLine = false;
  60.         local first = false;
  61.  
  62.         local loopLine = 0
  63.  
  64.         do{
  65.  
  66.             if(_text.find("~n") != null || !lastLine)
  67.             {
  68.                
  69.                 if(_text.find("~n"))
  70.                 {
  71.                     convert = _text.slice(0, _text.find("~n"));
  72.                     _text = _text.slice(_text.find("~n")+2);
  73.                      print(convert);
  74.                      first = false;
  75.                 }else lastLine = true;
  76.  
  77.                 //print(_text);
  78.  
  79.                 pos.y = _y + newline*drawH(draw.font)+3;
  80.                 pos.x = _x;
  81.                 pos.dis_x = _x;
  82.                 pos.dis_y = pos.y;
  83.                 ++newline;
  84.  
  85.                 local loopColor = 0;
  86.  
  87.                 do
  88.                 {
  89.                     if (convert.find("{#") != null)
  90.                         {
  91.                             if (!first && convert.find("{")  > 0)
  92.                             {
  93.                                 draw.text.append(convert.slice(0, convert.find("{")))
  94.                                 draw.r.append(draw.default_r);
  95.                                 draw.g.append(draw.default_g);
  96.                                 draw.b.append(draw.default_b);  
  97.                                 draw.x.append(pos.x);
  98.                                 draw.y.append(pos.y);
  99.                                 //
  100.                                 draw.dist_x.append(pos.dis_x);
  101.                                 draw.dist_y.append(pos.dis_y);
  102.  
  103.                                 textSetFont(draw.font);
  104.                                 local lx = textWidthPx(convert.slice(0, convert.find("{")));
  105.                                 pos.x = pos.x + lx;
  106.                                 pos.dis_x += lx;
  107.                                
  108.                                 convert = convert.slice(convert.find("{#"));
  109.                                 first = true;
  110.                                
  111.                             }else first = true;
  112.                            
  113.  
  114.                             local color = hexToRgb(convert.slice(convert.find("{")+2, convert.find("}")));
  115.                            
  116.                             convert = convert.slice(convert.find("}")+1);
  117.                             //print("text: " + convert);
  118.                            
  119.                             local endText = null
  120.  
  121.                             if(convert.find("{#") != null) endText = convert.slice(0, convert.find("{#"));
  122.                             else if(convert.find("~n") != null) endText = convert.slice(0, convert.find("~n"));
  123.                             else endText = convert.slice(0);
  124.  
  125.                            
  126.                             draw.text.append(endText);
  127.                             draw.r.append(color.r);
  128.                             draw.g.append(color.g);
  129.                             draw.b.append(color.b);
  130.                             draw.x.append(pos.x);
  131.                             draw.y.append(pos.y);
  132.                             //
  133.                             draw.dist_x.append(pos.dis_x);
  134.                             draw.dist_y.append(pos.dis_y);
  135.  
  136.                             textSetFont(draw.font);
  137.                             local lx = textWidthPx(endText);
  138.                             pos.x = pos.x + lx;
  139.                             pos.dis_x += lx;
  140.  
  141.            
  142.                         }else{
  143.  
  144.                             if(!first && !lastLine)
  145.                             {
  146.                                 draw.text.append(convert)
  147.                                 draw.r.append(draw.default_r);
  148.                                 draw.g.append(draw.default_g);
  149.                                 draw.b.append(draw.default_b);  
  150.                                 draw.x.append(pos.x);
  151.                                 draw.y.append(pos.y);
  152.                                 //
  153.                                 draw.dist_x.append(pos.dis_x);
  154.                                 draw.dist_y.append(pos.dis_y);
  155.                             }
  156.  
  157.                             loopColor = 1;
  158.                         }
  159.                 } while ( loopColor != 1)
  160.             }else{
  161.                
  162.                 loopLine = 1;
  163.             }
  164.  
  165.         } while ( loopLine != 1 )
  166.  
  167.  
  168.         //create
  169.         foreach(i, _draw in draw.text)
  170.         {
  171.             draw.d.append(Draw(anx(draw.x[i]), any(draw.y[i]), _draw));
  172.             draw.d[i].setPositionPx(draw.x[i], draw.y[i])
  173.             draw.d[i].font = draw.font;
  174.             draw.d[i].setColor(draw.r[i], draw.g[i], draw.b[i]);
  175.         }
  176.  
  177.     }
  178.  
  179.     function visible(_bool)
  180.     {
  181.         isVisible = _bool;
  182.  
  183.         foreach(_draw in draw.d)
  184.         {
  185.             _draw.visible = _bool;
  186.         }
  187.     }
  188.  
  189.     function setPosition(_x, _y)
  190.     {
  191.         foreach(i, _draw in draw.d)
  192.         {
  193.             _draw.setPositionPx(_x + draw.dist_x[i], _y + draw.dist_y[i]);
  194.             draw.x[i] = _x + draw.dist_x[i];
  195.             draw.y[i] = _y + draw.dist_y[i];
  196.         }    
  197.     }
  198.  
  199.     function getPositionPx()
  200.     {
  201.         return draw.d[0].getPositionPx();
  202.     }
  203.  
  204.     function top()
  205.     {
  206.         foreach(i, _draw in draw.d)
  207.         {
  208.             _draw.top;
  209.         }    
  210.     }
  211.  
  212.     isVisible = false;
  213.     draw = null;
  214. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement