コード例 #1
0
  private void update(BlockRegion a, BlockRegion b) {
    int minX = a.getBlockX(), maxX = a.getBlockX();
    int minY = a.getBlockY(), maxY = a.getBlockY();
    int minZ = a.getBlockZ(), maxZ = a.getBlockZ();

    if (b.getBlockX() > maxX) {
      maxX = b.getBlockX();
    } else {
      minX = b.getBlockX();
    }

    if (b.getBlockY() > maxY) {
      maxY = b.getBlockY();
    } else {
      minY = b.getBlockY();
    }

    if (b.getBlockZ() > maxZ) {
      maxZ = b.getBlockZ();
    } else {
      minZ = b.getBlockZ();
    }

    this.min = new BlockRegion(null, minX, minY, minZ);
    maxX--;
    maxY--;
    maxZ--;
    this.max = new BlockRegion(null, maxX, maxY, maxZ);
  }
コード例 #2
0
  @Override
  public BlockRegion getRandom() {
    int minX = min.getBlockX(), maxX = max.getBlockX();
    int minY = min.getBlockY(), maxY = max.getBlockY();
    int minZ = min.getBlockZ(), maxZ = max.getBlockZ();

    int x = OtherUtil.getRandom(minX, maxX);
    int y = OtherUtil.getRandom(minY, maxY);
    int z = OtherUtil.getRandom(minZ, maxZ);
    return new BlockRegion(null, x, y, z);
  }
コード例 #3
0
  @Override
  public boolean isInside(BlockRegion region) {
    int minX = min.getBlockX(), maxX = max.getBlockX();
    int minY = min.getBlockY(), maxY = max.getBlockY();
    int minZ = min.getBlockZ(), maxZ = max.getBlockZ();

    boolean x = minX <= region.getBlockX() && region.getBlockX() <= maxX;
    boolean y = minY <= region.getBlockY() && region.getBlockY() <= maxY;
    boolean z = minZ <= region.getBlockZ() && region.getBlockZ() <= maxZ;
    return x && y && z;
  }