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); }
@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); }
@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; }