Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.tangledmaze.gorgeousone.mazes.generators;
- import java.util.ArrayList;
- import me.tangledmaze.gorgeousone.utils.Facing;
- import me.tangledmaze.gorgeousone.utils.Vector2i;
- import org.bukkit.util.Vector;
- public class MazeSegment {
- private Vector2i start;
- private Facing facing;
- private int length;
- private int width;
- //TODO: is this necessary?
- private boolean isExit;
- public MazeSegment(Vector2i start, Facing facing, int length, int width, boolean isExit) {
- this.facing = facing;
- this.start = start;
- this.length = length;
- this.width = width;
- this.isExit = isExit;
- }
- private void move(int dx, int dz) {
- start = start.add(new Vector2i(dx, dz));
- }
- public void expand(int deltaLength) {
- length += deltaLength;
- }
- public Vector2i getStart() {
- return start.clone();
- }
- public Vector2i getEnd() {
- return start.add(new Vector2i(facing.getX() * getUnpaddedLength(), facing.getZ() * getUnpaddedLength()));
- }
- //in a real language (Kotlin): val actualLength -> length - width
- //:PEPE:
- private int getUnpaddedLength()
- {
- return length - width;
- }
- public ArrayList<Vector> getFill() {
- ArrayList<Vector> fill = new ArrayList<>();
- Vector2i min = new Vector2i(
- Math.min(start.getX(), getEnd().getX()),
- Math.min(start.getY(), getEnd().getY()));
- Vector2i max = new Vector2i(
- Math.max(start.getX(), getEnd().getX()),
- Math.max(start.getY(), getEnd().getY()));
- //Vector min = start.clone().add(relativeMin);
- //Vector max = min.clone().add(new Vector(deltaX, 0, deltaZ));
- for(int x = min.getX(); x < max.getX(); x++)
- for(int z = min.getY(); z < max.getY(); z++)
- fill.add(new Vector(x, 0, z));
- return fill;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement