Advertisement
Barteks2x

Untitled

May 14th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.65 KB | None | 0 0
  1.     public static final <T extends Enum<T>> void writeEnumSet(NBTTagCompound tag, String key, EnumSet<T> set) {
  2.         int max = -1;
  3.         for (T value : set) {
  4.             max = Math.max(max, value.ordinal());
  5.         }
  6.         BitArray bitArray = new BitArray(1, max + 1);
  7.         for (T value : set) {
  8.             bitArray.setAt(value.ordinal(), 1);
  9.         }
  10.         long[] longArray = bitArray.getBackingLongArray();
  11.         int[] intArray = new int[longArray.length*2];
  12.         for (int i = 0; i < longArray.length; i++) {
  13.             long val = longArray[i];
  14.             int msb = (int) (val >>> 32);
  15.             int lsb = (int) (val & 0xFFFFFFFF);
  16.             intArray[i*2] = msb;
  17.             intArray[i*2 + 1] = lsb;
  18.         }
  19.         tag.setIntArray(key, intArray);
  20.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement