package in.twizmwaz.cardinal.module.modules.regions.type;
import in.twizmwaz.cardinal.GameHandler;
import in.twizmwaz.cardinal.module.modules.regions.RegionModule;
import in.twizmwaz.cardinal.module.modules.regions.parsers.BlockParser;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.util.Vector;
import java.util.ArrayList;
import java.util.List;
public class BlockRegion extends RegionModule {
protected final Vector vector;
public BlockRegion(String name, Vector vector) {
super(name);
this.vector = vector;
}
public BlockRegion(String name, double x, double y, double z) {
super(name);
this.vector = new Vector(x, y, z);
}
public BlockRegion(BlockParser parser) {
this(parser.getName(), parser.getVector());
}
public double getX() {
return vector.getX() + 0.5;
}
public double getY() {
return vector.getY() + 0.5;
}
public double getZ() {
return vector.getZ() + 0.5;
}
public Vector getVector() {
return vector.clone().add(new Vector(0.5, 0.5, 0.5));
}
@Override
public boolean contains(Vector vector) {
return vector.getBlockX() == getVector().getBlockX() &&
vector.getBlockY() == getVector().getBlockY() &&
vector.getBlockZ() == getVector().getBlockZ();
}
@Override
public PointRegion getRandomPoint() {
return new PointRegion(null, getVector());
}
@Override
public BlockRegion getCenterBlock() {
return this;
}
@Override
public List<Block> getBlocks() {
List<Block> results = new ArrayList<>();
results.add(getBlock());
return results;
}
public Location getLocation() {
return getVector().toLocation(GameHandler.getGameHandler().getMatchWorld());
}
public Block getBlock() {
return vector.toLocation(GameHandler.getGameHandler().getMatchWorld()).getBlock();
}
}