Lets say I have a location of a block and I get the direction that the block is facing. How would I then get the left and right directions of that block
Eg. Block is facing north, so I want west and east. Block is facing east, so I want north and south.
Directon direction = blockLocation.get(Keys.DIRECTION).get();
Direction leftDirection = //unsure what to do here
Direction rightDirection = //unsure what to do here
Heres how i would do it
public static Direction rotateLeft(Direction direction) {
switch (direction) {
case NORTH:
return Direction.WEST;
case WEST:
return Direction.SOUTH;
case SOUTH:
return Direction.EAST;
case EAST:
return Direction.NORTH;
case NORTHWEST:
return Direction.SOUTHWEST;
case SOUTHWEST:
return Direction.SOUTHEAST;
case SOUTHEAST:
return Direction.NORTHEAST;
case NORTHEAST:
return Direction.NORTHWEST;
default:
break;
}
return direction;
}
public static Direction rotateRight(Direction direction) {
switch (direction) {
case NORTH:
return Direction.EAST;
case EAST:
return Direction.SOUTH;
case SOUTH:
return Direction.WEST;
case WEST:
return Direction.NORTH;
case NORTHWEST:
return Direction.NORTHEAST;
case NORTHEAST:
return Direction.SOUTHEAST;
case SOUTHEAST:
return Direction.SOUTHWEST;
case SOUTHWEST:
return Direction.NORTHWEST;
default:
break;
}
return direction;
}
And then simply call
Direction direction;
Direction left = rotateLeft(direction);
Direction right = rotateRight(direction);