ChunkColumnMask.java
package com.hypixel.hytale.server.spawning.util;
import com.hypixel.hytale.common.util.BitSetUtil;
import com.hypixel.hytale.math.util.ChunkUtil;
import java.util.BitSet;
import javax.annotation.Nonnull;
public class ChunkColumnMask {
public static final int COLUMNS = 1024;
private final BitSet columns = new BitSet(1024);
public ChunkColumnMask() {
}
public void copyFrom(@Nonnull ChunkColumnMask src) {
BitSetUtil.copyValues(src.columns, this.columns);
}
public boolean isEmpty() {
return this.columns.isEmpty();
}
public void clear() {
this.columns.clear();
}
public void set() {
this.columns.set(0, 1024);
}
public boolean get(int x, int z) {
return this.columns.get(ChunkUtil.indexColumn(x, z));
}
public void set(int x, int z) {
this.columns.set(ChunkUtil.indexColumn(x, z));
}
public void clear(int x, int z) {
this.columns.clear(ChunkUtil.indexColumn(x, z));
}
public void clear(int index) {
this.columns.clear(index & 1023);
}
public void set(int x, int z, boolean value) {
this.columns.set(ChunkUtil.indexColumn(x, z), value);
}
public boolean get(int index) {
return this.columns.get(index & 1023);
}
public void set(int bitIndex) {
this.columns.set(bitIndex & 1023);
}
public int nextSetBit(int fromIndex) {
return this.columns.nextSetBit(fromIndex & 1023);
}
public int nextClearBit(int fromIndex) {
return this.columns.nextClearBit(fromIndex & 1023);
}
public int previousSetBit(int fromIndex) {
return this.columns.previousSetBit(fromIndex & 1023);
}
public int previousClearBit(int fromIndex) {
return this.columns.previousClearBit(fromIndex & 1023);
}
public int cardinality() {
return this.columns.cardinality();
}
}