package in.twizmwaz.cardinal.module.modules.regions.type; import in.twizmwaz.cardinal.GameHandler; import in.twizmwaz.cardinal.module.modules.regions.parsers.RectangleParser; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.util.Vector; import java.util.ArrayList; import java.util.List; public class RectangleRegion extends CuboidRegion { public RectangleRegion(String name, double xMin, double zMin, double xMax, double zMax) { super(name, new Vector(xMin, Double.NEGATIVE_INFINITY, zMin), new Vector(xMax, Double.POSITIVE_INFINITY, zMax)); } public RectangleRegion(RectangleParser parser) { this(parser.getName(), parser.getXMin(), parser.getZMin(), parser.getXMax(), parser.getZMax()); } public double getXMin() { return super.getXMin(); } public double getZMin() { return super.getZMin(); } public double getXMax() { return super.getXMax(); } public double getZMax() { return super.getZMax(); } @Override public List<Block> getBlocks() { List<Block> results = new ArrayList<>(); for (int x = (int) getXMin(); x <= getXMax(); x++) { for (int z = (int) getZMin(); z <= getZMax(); z++) { for (int y = 0; y <= 256; y++) { results.add((new Location(GameHandler.getGameHandler().getMatchWorld(), x, y, z).getBlock())); } } } return results; } @Override public BlockRegion getCenterBlock() { return new BlockRegion(null, new Vector(getXMin(), 0, getXMax()).midpoint(new Vector(getXMax(), 256, getZMax()))); } }