LocationIterator.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package me.km.utils;
  2. import java.util.Iterator;
  3. import net.minecraft.world.World;
  4. public class LocationIterator implements Iterator<Location> {
  5. private final int minX;
  6. private final int minY;
  7. private final int maxX;
  8. private final int maxY;
  9. private final int maxZ;
  10. private final Location current;
  11. private int x;
  12. private int y;
  13. private int z;
  14. public LocationIterator(World world, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) {
  15. this.minX = minX;
  16. this.minY = minY;
  17. this.maxX = maxX;
  18. this.maxY = maxY;
  19. this.maxZ = maxZ;
  20. current = new Location(world, minX, minY, minZ, 0, 0);
  21. x = minX;
  22. y = minY;
  23. z = minZ;
  24. }
  25. @Override
  26. public boolean hasNext() {
  27. return z <= maxZ;
  28. }
  29. @Override
  30. public Location next() {
  31. current.set(x, y, z);
  32. x++;
  33. if(x > maxX) {
  34. x = minX;
  35. y++;
  36. if(y > maxY) {
  37. y = minY;
  38. z++;
  39. }
  40. }
  41. return current;
  42. }
  43. }