mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-23 17:57:38 +00:00
Extracted an AbstractRegion class with some common functionality of all the region types.
This commit is contained in:
parent
2cc0087524
commit
4d708a5003
@ -0,0 +1,34 @@
|
|||||||
|
package com.sk89q.worldedit.regions;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.BlockVector;
|
||||||
|
import com.sk89q.worldedit.LocalWorld;
|
||||||
|
|
||||||
|
public abstract class AbstractRegion implements Region {
|
||||||
|
/**
|
||||||
|
* Stores the world.
|
||||||
|
*/
|
||||||
|
protected LocalWorld world;
|
||||||
|
|
||||||
|
public AbstractRegion(LocalWorld world) {
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the iterator.
|
||||||
|
*
|
||||||
|
* @return iterator of points inside the region
|
||||||
|
*/
|
||||||
|
public Iterator<BlockVector> iterator() {
|
||||||
|
return new RegionIterator(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalWorld getWorld() {
|
||||||
|
return world;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorld(LocalWorld world) {
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
}
|
@ -32,7 +32,7 @@ import java.util.HashSet;
|
|||||||
*
|
*
|
||||||
* @author sk89q
|
* @author sk89q
|
||||||
*/
|
*/
|
||||||
public class CuboidRegion implements Region {
|
public class CuboidRegion extends AbstractRegion {
|
||||||
/**
|
/**
|
||||||
* Store the first point.
|
* Store the first point.
|
||||||
*/
|
*/
|
||||||
@ -41,11 +41,6 @@ public class CuboidRegion implements Region {
|
|||||||
* Store the second point.
|
* Store the second point.
|
||||||
*/
|
*/
|
||||||
private Vector pos2;
|
private Vector pos2;
|
||||||
/**
|
|
||||||
* Stores the world.
|
|
||||||
*/
|
|
||||||
private LocalWorld world;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new instance of this cuboid region.
|
* Construct a new instance of this cuboid region.
|
||||||
*
|
*
|
||||||
@ -64,8 +59,8 @@ public class CuboidRegion implements Region {
|
|||||||
* @param pos2
|
* @param pos2
|
||||||
*/
|
*/
|
||||||
public CuboidRegion(LocalWorld world, Vector pos1, Vector pos2) {
|
public CuboidRegion(LocalWorld world, Vector pos1, Vector pos2) {
|
||||||
|
super(world);
|
||||||
this.pos1 = pos1;
|
this.pos1 = pos1;
|
||||||
this.world = world;
|
|
||||||
this.pos2 = pos2;
|
this.pos2 = pos2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,6 +322,7 @@ public class CuboidRegion implements Region {
|
|||||||
*
|
*
|
||||||
* @return iterator of points inside the region
|
* @return iterator of points inside the region
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<BlockVector> iterator() {
|
public Iterator<BlockVector> iterator() {
|
||||||
return new Iterator<BlockVector>() {
|
return new Iterator<BlockVector>() {
|
||||||
private Vector min = getMinimumPoint();
|
private Vector min = getMinimumPoint();
|
||||||
@ -370,12 +366,4 @@ public class CuboidRegion implements Region {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getMinimumPoint() + " - " + getMaximumPoint();
|
return getMinimumPoint() + " - " + getMaximumPoint();
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalWorld getWorld() {
|
|
||||||
return world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorld(LocalWorld world) {
|
|
||||||
this.world = world;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,10 @@
|
|||||||
|
|
||||||
package com.sk89q.worldedit.regions;
|
package com.sk89q.worldedit.regions;
|
||||||
|
|
||||||
import com.sk89q.worldedit.BlockVector;
|
|
||||||
import com.sk89q.worldedit.LocalWorld;
|
import com.sk89q.worldedit.LocalWorld;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.Vector2D;
|
import com.sk89q.worldedit.Vector2D;
|
||||||
import com.sk89q.worldedit.data.ChunkStore;
|
import com.sk89q.worldedit.data.ChunkStore;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
@ -32,7 +30,7 @@ import java.util.HashSet;
|
|||||||
*
|
*
|
||||||
* @author TomyLobo
|
* @author TomyLobo
|
||||||
*/
|
*/
|
||||||
public class EllipsoidRegion implements Region {
|
public class EllipsoidRegion extends AbstractRegion {
|
||||||
/**
|
/**
|
||||||
* Stores the center.
|
* Stores the center.
|
||||||
*/
|
*/
|
||||||
@ -41,11 +39,6 @@ public class EllipsoidRegion implements Region {
|
|||||||
* Stores the radiuses plus 0.5 on each axis.
|
* Stores the radiuses plus 0.5 on each axis.
|
||||||
*/
|
*/
|
||||||
private Vector radius;
|
private Vector radius;
|
||||||
/**
|
|
||||||
* Stores the world.
|
|
||||||
*/
|
|
||||||
private LocalWorld world;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a new instance of this ellipsoid region.
|
* Construct a new instance of this ellipsoid region.
|
||||||
*
|
*
|
||||||
@ -64,7 +57,7 @@ public class EllipsoidRegion implements Region {
|
|||||||
* @param radius
|
* @param radius
|
||||||
*/
|
*/
|
||||||
public EllipsoidRegion(LocalWorld world, Vector center, Vector radius) {
|
public EllipsoidRegion(LocalWorld world, Vector center, Vector radius) {
|
||||||
this.world = world;
|
super(world);
|
||||||
this.center = center;
|
this.center = center;
|
||||||
this.radius = radius;
|
this.radius = radius;
|
||||||
}
|
}
|
||||||
@ -211,15 +204,6 @@ public class EllipsoidRegion implements Region {
|
|||||||
return pt.subtract(center).divide(radius).lengthSq() <= 1;
|
return pt.subtract(center).divide(radius).lengthSq() <= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the iterator.
|
|
||||||
*
|
|
||||||
* @return iterator of points inside the region
|
|
||||||
*/
|
|
||||||
public Iterator<BlockVector> iterator() {
|
|
||||||
return new RegionIterator(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns string representation in the format
|
* Returns string representation in the format
|
||||||
* "(centerX, centerY, centerZ) - (radiusX, radiusY, radiusZ)".
|
* "(centerX, centerY, centerZ) - (radiusX, radiusY, radiusZ)".
|
||||||
@ -231,14 +215,6 @@ public class EllipsoidRegion implements Region {
|
|||||||
return center + " - " + getRadius();
|
return center + " - " + getRadius();
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalWorld getWorld() {
|
|
||||||
return world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorld(LocalWorld world) {
|
|
||||||
this.world = world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void extendRadius(Vector minRadius) {
|
public void extendRadius(Vector minRadius) {
|
||||||
setRadius(Vector.getMaximum(minRadius, getRadius()));
|
setRadius(Vector.getMaximum(minRadius, getRadius()));
|
||||||
}
|
}
|
||||||
|
@ -37,14 +37,13 @@ import com.sk89q.worldedit.data.ChunkStore;
|
|||||||
*
|
*
|
||||||
* @author sk89q
|
* @author sk89q
|
||||||
*/
|
*/
|
||||||
public class Polygonal2DRegion implements Region {
|
public class Polygonal2DRegion extends AbstractRegion {
|
||||||
private List<BlockVector2D> points;
|
private List<BlockVector2D> points;
|
||||||
private BlockVector min;
|
private BlockVector min;
|
||||||
private BlockVector max;
|
private BlockVector max;
|
||||||
private int minY;
|
private int minY;
|
||||||
private int maxY;
|
private int maxY;
|
||||||
private boolean hasY = false;
|
private boolean hasY = false;
|
||||||
private LocalWorld world;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct the region
|
* Construct the region
|
||||||
@ -72,11 +71,11 @@ public class Polygonal2DRegion implements Region {
|
|||||||
* @param maxY
|
* @param maxY
|
||||||
*/
|
*/
|
||||||
public Polygonal2DRegion(LocalWorld world, List<BlockVector2D> points, int minY, int maxY) {
|
public Polygonal2DRegion(LocalWorld world, List<BlockVector2D> points, int minY, int maxY) {
|
||||||
|
super(world);
|
||||||
this.points = new ArrayList<BlockVector2D>(points);
|
this.points = new ArrayList<BlockVector2D>(points);
|
||||||
this.minY = minY;
|
this.minY = minY;
|
||||||
this.maxY = maxY;
|
this.maxY = maxY;
|
||||||
hasY = true;
|
hasY = true;
|
||||||
this.world = world;
|
|
||||||
recalculate();
|
recalculate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,6 +439,7 @@ public class Polygonal2DRegion implements Region {
|
|||||||
*
|
*
|
||||||
* @return iterator of points inside the region
|
* @return iterator of points inside the region
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<BlockVector> iterator() {
|
public Iterator<BlockVector> iterator() {
|
||||||
return new Polygonal2DRegionIterator(this);
|
return new Polygonal2DRegionIterator(this);
|
||||||
|
|
||||||
@ -603,12 +603,4 @@ public class Polygonal2DRegion implements Region {
|
|||||||
throw new UnsupportedOperationException("Not supported");
|
throw new UnsupportedOperationException("Not supported");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalWorld getWorld() {
|
|
||||||
return world;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorld(LocalWorld world) {
|
|
||||||
this.world = world;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user