Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Vec2i[] arrangeStrings(final String[]strings,int lines,int marginX,int marginY){
- FontRenderer fr=Font.FR();
- Vec2i[] result=new Vec2i[strings.length];
- int colums=(int)Math.floor(strings.length/(float)lines)+1;
- String[][] formatedStrings=new String[colums][lines];
- int[] longestInColum=new int[colums],columOffsets=new int[colums];
- for(int i=0;i<colums;i++){
- for(int j=0;j<lines;j++){
- int id=i*(colums+1)+j;
- if(id<strings.length)formatedStrings[i][j]=strings[id];
- }
- }
- for(int i=0;i<formatedStrings.length;i++){
- while(ArrayUtils.contains(formatedStrings[i], null))formatedStrings[i]=ArrayUtils.removeElement(formatedStrings[i], null);
- }
- for(int i=0;i<colums;i++){
- for(int j=0;j<formatedStrings[i].length;j++){
- longestInColum[i]=Math.max(longestInColum[i], fr.getStringWidth(formatedStrings[i][j]));
- }
- }
- for(int i=0;i<colums;i++){
- columOffsets[i]=marginX;
- for(int j=0;j<i;j++){
- columOffsets[i]+=longestInColum[j]+marginX;
- }
- }
- for(int i=0;i<strings.length;i++){
- result[i]=new Vec2i(columOffsets[(i/lines)%colums], (i%lines)*(fr.FONT_HEIGHT+marginY)+marginY);
- }
- return result;
- }
Add Comment
Please, Sign In to add comment