some refactoring to pipeline classes (WIP)

This commit is contained in:
Jesse Boyd
2019-07-17 05:10:39 +10:00
parent 14d5275e05
commit cfbde956f4
21 changed files with 1388 additions and 439 deletions

View File

@ -27,13 +27,14 @@ import com.sk89q.worldedit.regions.iterator.RegionIterator;
import com.sk89q.worldedit.world.World;
import com.sk89q.worldedit.world.storage.ChunkStore;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public abstract class AbstractRegion implements Region {
public abstract class AbstractRegion extends AbstractSet<BlockVector3> implements Region {
protected World world;
@ -41,6 +42,11 @@ public abstract class AbstractRegion implements Region {
this.world = world;
}
@Override
public int size() {
return getArea();
}
@Override
public Vector3 getCenter() {
return getMinimumPoint().add(getMaximumPoint()).toVector3().divide(2);
@ -100,21 +106,6 @@ public abstract class AbstractRegion implements Region {
return points;
}
/**
* Get the number of blocks in the region.
*
* @return number of blocks
*/
@Override
public int getArea() {
BlockVector3 min = getMinimumPoint();
BlockVector3 max = getMaximumPoint();
return (max.getX() - min.getX() + 1) *
(max.getY() - min.getY() + 1) *
(max.getZ() - min.getZ() + 1);
}
/**
* Get X-size.
*

View File

@ -62,14 +62,23 @@ public interface Region extends Iterable<BlockVector3>, Cloneable {
*
* @return center point
*/
Vector3 getCenter();
default Vector3 getCenter() {
return getMinimumPoint().add(getMaximumPoint()).toVector3().divide(2);
}
/**
* Get the number of blocks in the region.
*
* @return number of blocks
*/
int getArea();
default int getArea() {
BlockVector3 min = getMinimumPoint();
BlockVector3 max = getMaximumPoint();
return (max.getX() - min.getX() + 1) *
(max.getY() - min.getY() + 1) *
(max.getZ() - min.getZ() + 1);
}
/**
* Get X-size.