Advertisement
Guest User

Untitled

a guest
Sep 24th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. package me.tangledmaze.gorgeousone.mazes.generators;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import me.tangledmaze.gorgeousone.utils.Facing;
  6. import me.tangledmaze.gorgeousone.utils.Vector2i;
  7. import org.bukkit.util.Vector;
  8.  
  9. public class MazeSegment {
  10.  
  11. private Vector2i start;
  12. private Facing facing;
  13. private int length;
  14. private int width;
  15. //TODO: is this necessary?
  16. private boolean isExit;
  17.  
  18. public MazeSegment(Vector2i start, Facing facing, int length, int width, boolean isExit) {
  19.  
  20. this.facing = facing;
  21. this.start = start;
  22.  
  23. this.length = length;
  24. this.width = width;
  25.  
  26. this.isExit = isExit;
  27. }
  28.  
  29. private void move(int dx, int dz) {
  30. start = start.add(new Vector2i(dx, dz));
  31. }
  32.  
  33. public void expand(int deltaLength) {
  34. length += deltaLength;
  35. }
  36.  
  37. public Vector2i getStart() {
  38. return start.clone();
  39. }
  40.  
  41. public Vector2i getEnd() {
  42. return start.add(new Vector2i(facing.getX() * getUnpaddedLength(), facing.getZ() * getUnpaddedLength()));
  43. }
  44.  
  45.  
  46. //in a real language (Kotlin): val actualLength -> length - width
  47. //:PEPE:
  48. private int getUnpaddedLength()
  49. {
  50. return length - width;
  51. }
  52.  
  53. public ArrayList<Vector> getFill() {
  54. ArrayList<Vector> fill = new ArrayList<>();
  55.  
  56. Vector2i min = new Vector2i(
  57. Math.min(start.getX(), getEnd().getX()),
  58. Math.min(start.getY(), getEnd().getY()));
  59. Vector2i max = new Vector2i(
  60. Math.max(start.getX(), getEnd().getX()),
  61. Math.max(start.getY(), getEnd().getY()));
  62. //Vector min = start.clone().add(relativeMin);
  63. //Vector max = min.clone().add(new Vector(deltaX, 0, deltaZ));
  64.  
  65. for(int x = min.getX(); x < max.getX(); x++)
  66. for(int z = min.getY(); z < max.getY(); z++)
  67. fill.add(new Vector(x, 0, z));
  68.  
  69. return fill;
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement