com.fastasyncworldedit.core.function.mask.MaskUnion2D Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of FastAsyncWorldEdit-Core Show documentation
Show all versions of FastAsyncWorldEdit-Core Show documentation
Blazingly fast Minecraft world manipulation for artists, builders and everyone else.
package com.fastasyncworldedit.core.function.mask;
import com.sk89q.worldedit.function.mask.Mask2D;
import com.sk89q.worldedit.function.mask.MaskIntersection2D;
import com.sk89q.worldedit.math.BlockVector2;
import java.util.Collection;
import java.util.Set;
import java.util.stream.Collectors;
/**
* Tests true if any contained mask is true, even if it just one.
*/
public class MaskUnion2D extends MaskIntersection2D {
/**
* Create a new union.
*
* @param masks a list of masks
*/
public MaskUnion2D(Collection masks) {
super(masks);
}
/**
* Create a new union.
*
* @param mask a list of masks
*/
public MaskUnion2D(Mask2D... mask) {
super(mask);
}
@Override
public boolean test(BlockVector2 vector) {
Collection masks = getMasks();
for (Mask2D mask : masks) {
if (mask.test(vector)) {
return true;
}
}
return false;
}
@Override
public Mask2D copy2D() {
Set masksCopy = masks.stream().map(Mask2D::copy2D).collect(Collectors.toSet());
return new MaskUnion2D(masksCopy);
}
}