mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-01 19:06:41 +00:00
ADD: CylinderSelection for worldguard to be able to create regions
MOD: moved polygonize method of CylinderRegion to RegionUtil so it can be reused later on
This commit is contained in:
@ -22,11 +22,13 @@ package com.sk89q.worldedit.regions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import com.sk89q.worldedit.BlockVector;
|
||||
import com.sk89q.worldedit.BlockVector2D;
|
||||
import com.sk89q.worldedit.LocalWorld;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.Vector2D;
|
||||
import com.sk89q.worldedit.util.RegionUtil;
|
||||
|
||||
/**
|
||||
* Represents a cylindrical region.
|
||||
@ -366,22 +368,6 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion {
|
||||
|
||||
@Override
|
||||
public List<BlockVector2D> polygonize(int maxPoints) {
|
||||
final Vector2D radius = getRadius();
|
||||
int nPoints = (int) Math.ceil(Math.PI*radius.length());
|
||||
|
||||
// These strange semantics for maxPoints are copied from the selectSecondary method.
|
||||
if (maxPoints >= 0 && nPoints >= maxPoints) {
|
||||
nPoints = maxPoints - 1;
|
||||
}
|
||||
|
||||
final List<BlockVector2D> points = new ArrayList<BlockVector2D>(nPoints);
|
||||
for (int i = 0; i < nPoints; ++i) {
|
||||
double angle = i * (2.0 * Math.PI) / nPoints;
|
||||
final Vector2D pos = new Vector2D(Math.cos(angle), Math.sin(angle));
|
||||
final BlockVector2D blockVector2D = pos.multiply(radius).add(center).toBlockVector2D();
|
||||
points.add(blockVector2D);
|
||||
}
|
||||
|
||||
return points;
|
||||
return RegionUtil.polygonizeCylinder(center, radius, maxPoints);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user