1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package me.km.utils;
- import java.util.Iterator;
- import net.minecraft.world.World;
- public class LocationIterator implements Iterator<Location> {
- private final int minX;
- private final int minY;
- private final int maxX;
- private final int maxY;
- private final int maxZ;
- private final Location current;
- private int x;
- private int y;
- private int z;
- public LocationIterator(World world, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) {
- this.minX = minX;
- this.minY = minY;
- this.maxX = maxX;
- this.maxY = maxY;
- this.maxZ = maxZ;
- current = new Location(world, minX, minY, minZ, 0, 0);
- x = minX;
- y = minY;
- z = minZ;
- }
- @Override
- public boolean hasNext() {
- return z <= maxZ;
- }
- @Override
- public Location next() {
- current.set(x, y, z);
- x++;
- if(x > maxX) {
- x = minX;
- y++;
- if(y > maxY) {
- y = minY;
- z++;
- }
- }
- return current;
- }
- }
|