Помогите решить вопрос

Версия Minecraft
1.7.10
54
17
Это часть кода из IC2! Я хочу уменьшить число параметров с 5 на 3 но не могу понять что тут и как....
Java:
   public static int getNumericState(int[] state) {
      if(state != null && state.length == 5) {
         int i = 0;

         for(int j = 0; j < 5; ++j) {
            if(state[j] < 16) {
               i += state[j];
               if(j != 4) {
                  i <<= 4;
               }
            }
         }

         return i;
      } else {
         return -1;
      }
   }

   public static int[] getStateFromNumeric(int state) {
      int[] ret = new int[5];
      if(state == -1) {
         return ret;
      } else {
         for(int j = 4; j >= 0; --j) {
            ret[j] = state & 15;
            if(j != 0) {
               state >>= 4;
            }
         }

         return ret;
      }
   }
 
7,099
324
1,510
7,099
324
1,510
7,099
324
1,510
<16 - меньше 16
state & 15 - побитовое умножение
state >>= 4 эквивалентно state=state>>4

Учебник по java почитай
 
54
17
Да понятно это я не могу понять что не так?
Java:
   public static int getNumericState(int[] state) {
      if(state != null && state.length == 3) {
         int i = 0;
         for(int j = 0; j < 3; ++j) {
            if(state[j] < 6) {
               i += state[j];
               if(j != 3) { i <<= 3; }
            }
         }
         return i;
      } else {
         return -1;
      }
   }
   public static int[] getStateFromNumeric(int state) {
      int[] ret = new int[3];
      if(state == -1) {
         return ret;
      } else {
         for(int j = 2; j >= 0; --j) {
            ret[j] = state & 15;
            if(j != 0) { state >>= 3; }
         }
         return ret;
      }
   }
 
Сверху