Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static final <T extends Enum<T>> void writeEnumSet(NBTTagCompound tag, String key, EnumSet<T> set) {
- int max = -1;
- for (T value : set) {
- max = Math.max(max, value.ordinal());
- }
- BitArray bitArray = new BitArray(1, max + 1);
- for (T value : set) {
- bitArray.setAt(value.ordinal(), 1);
- }
- long[] longArray = bitArray.getBackingLongArray();
- int[] intArray = new int[longArray.length*2];
- for (int i = 0; i < longArray.length; i++) {
- long val = longArray[i];
- int msb = (int) (val >>> 32);
- int lsb = (int) (val & 0xFFFFFFFF);
- intArray[i*2] = msb;
- intArray[i*2 + 1] = lsb;
- }
- tag.setIntArray(key, intArray);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement