Update favs

This commit is contained in:
Jesse Boyd
2018-08-23 06:02:04 +10:00
parent 9927cde616
commit f43faae917
178 changed files with 24721 additions and 32 deletions

View File

@ -4,6 +4,7 @@ import com.boydti.fawe.Fawe;
import com.boydti.fawe.FaweCache;
import com.boydti.fawe.object.collection.FastBitSet;
import com.boydti.fawe.util.MainUtil;
import com.boydti.fawe.util.StringMan;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.world.block.BlockState;
@ -15,6 +16,7 @@ import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -43,6 +45,31 @@ public class BlockMask extends AbstractExtentMask {
this.bitSets = bitSets;
}
public BlockMaskBuilder toBuilder() {
return new BlockMaskBuilder(this.bitSets);
}
@Override
public String toString() {
List<String> strings = new ArrayList<>();
for (int i = 0; i < bitSets.length; i++) {
if (bitSets[i] != null) {
long[] set = bitSets[i];
BlockTypes type = BlockTypes.get(i);
if (set == ALL) {
strings.add(type.getId());
} else {
for (BlockState state : type.getStates()) {
if (test(state)) {
strings.add(state.getAsString());
}
}
}
}
}
return StringMan.join(strings, ",");
}
@Override
public Mask optimize() {
Map<Object, Integer> states = new HashMap<>();
@ -179,6 +206,13 @@ public class BlockMask extends AbstractExtentMask {
return this;
}
public boolean test(BlockState block) {
long[] bitSet = bitSets[block.getInternalBlockTypeId()];
if (bitSet == null) return false;
if (bitSet.length == 0) return true;
return FastBitSet.get(bitSet, block.getInternalPropertiesId());
}
@Override
public boolean test(Vector vector) {
BlockStateHolder block = getExtent().getBlock(vector);

View File

@ -553,7 +553,7 @@ public class BlockMaskBuilder {
return this.bitSets;
}
public Mask build(Extent extent) {
public BlockMask build(Extent extent) {
optimize();
return new BlockMask(extent, bitSets);
}