LapisSea

Untitled

Jan 11th, 2016
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. public static Vec2i[] arrangeStrings(final String[]strings,int lines,int marginX,int marginY){
  2.  
  3. FontRenderer fr=Font.FR();
  4.  
  5.  
  6. Vec2i[] result=new Vec2i[strings.length];
  7.  
  8. int colums=(int)Math.floor(strings.length/(float)lines)+1;
  9.  
  10. String[][] formatedStrings=new String[colums][lines];
  11. int[] longestInColum=new int[colums],columOffsets=new int[colums];
  12.  
  13.  
  14. for(int i=0;i<colums;i++){
  15. for(int j=0;j<lines;j++){
  16. int id=i*(colums+1)+j;
  17. if(id<strings.length)formatedStrings[i][j]=strings[id];
  18. }
  19. }
  20. for(int i=0;i<formatedStrings.length;i++){
  21. while(ArrayUtils.contains(formatedStrings[i], null))formatedStrings[i]=ArrayUtils.removeElement(formatedStrings[i], null);
  22. }
  23. for(int i=0;i<colums;i++){
  24. for(int j=0;j<formatedStrings[i].length;j++){
  25. longestInColum[i]=Math.max(longestInColum[i], fr.getStringWidth(formatedStrings[i][j]));
  26. }
  27. }
  28. for(int i=0;i<colums;i++){
  29. columOffsets[i]=marginX;
  30. for(int j=0;j<i;j++){
  31. columOffsets[i]+=longestInColum[j]+marginX;
  32. }
  33. }
  34.  
  35. for(int i=0;i<strings.length;i++){
  36. result[i]=new Vec2i(columOffsets[(i/lines)%colums], (i%lines)*(fr.FONT_HEIGHT+marginY)+marginY);
  37. }
  38.  
  39. return result;
  40. }
Add Comment
Please, Sign In to add comment