package tc.oc.pgm.regions;

import org.bukkit.util.Vector;

import java.util.Random;

public class BlockRegion extends Region.Impl {
    protected final @Inspect Vector location;

    public BlockRegion(Vector block) {
        this.location = new Vector(block.getBlockX(), block.getBlockY(), block.getBlockZ());
    }

    @Override
    public boolean contains(Vector point) {
        return this.location.getBlockX() == point.getBlockX() &&
                this.location.getBlockY() == point.getBlockY() &&
                this.location.getBlockZ() == point.getBlockZ();
    }

    @Override
    public boolean canGetRandom() {
        return true;
    }

    @Override
    public boolean isBlockBounded() {
        return true;
    }

    @Override
    public Cuboid getBounds() {
        return Cuboid.between(this.location, this.location.clone().add(new Vector(1, 1, 1)));
    }

    @Override
    public Vector getRandom(Random random) {
        double dx = random.nextDouble();
        double dy = random.nextDouble();
        double dz = random.nextDouble();
        return this.location.clone().add(new Vector(dx, dy, dz));
    }
}
