package org.dynmap.utils; /* Represents last step of movement of the ray (don't alter order here - ordinal sensitive) */ public enum BlockStep { X_PLUS(4, 1, 0, 0), Y_PLUS(0, 0, 1, 0), Z_PLUS(2, 0, 0, 1), X_MINUS(5, -1, 0, 0), Y_MINUS(1, 0, -1, 0), Z_MINUS(3, 0, 0, -1); private final int face; // Index of MC block face entered through with step (Y_MINUS = enter from top) public final int xoff; public final int yoff; public final int zoff; public static final BlockStep oppositeValues[] = { X_MINUS, Y_MINUS, Z_MINUS, X_PLUS, Y_PLUS, Z_PLUS }; BlockStep(int f, int xoff, int yoff, int zoff) { face = f; this.xoff = xoff; this.yoff = yoff; this.zoff = zoff; } public final BlockStep opposite() { return oppositeValues[ordinal()]; } // MC index of face entered by step public final int getFaceEntered() { return face; } }