56 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.core;
 | |
| 
 | |
| import net.minecraft.Util;
 | |
| import net.minecraft.util.StringRepresentable;
 | |
| 
 | |
| public enum FrontAndTop implements StringRepresentable {
 | |
| 	DOWN_EAST("down_east", Direction.DOWN, Direction.EAST),
 | |
| 	DOWN_NORTH("down_north", Direction.DOWN, Direction.NORTH),
 | |
| 	DOWN_SOUTH("down_south", Direction.DOWN, Direction.SOUTH),
 | |
| 	DOWN_WEST("down_west", Direction.DOWN, Direction.WEST),
 | |
| 	UP_EAST("up_east", Direction.UP, Direction.EAST),
 | |
| 	UP_NORTH("up_north", Direction.UP, Direction.NORTH),
 | |
| 	UP_SOUTH("up_south", Direction.UP, Direction.SOUTH),
 | |
| 	UP_WEST("up_west", Direction.UP, Direction.WEST),
 | |
| 	WEST_UP("west_up", Direction.WEST, Direction.UP),
 | |
| 	EAST_UP("east_up", Direction.EAST, Direction.UP),
 | |
| 	NORTH_UP("north_up", Direction.NORTH, Direction.UP),
 | |
| 	SOUTH_UP("south_up", Direction.SOUTH, Direction.UP);
 | |
| 
 | |
| 	private static final int NUM_DIRECTIONS = Direction.values().length;
 | |
| 	private static final FrontAndTop[] BY_TOP_FRONT = Util.make(new FrontAndTop[NUM_DIRECTIONS * NUM_DIRECTIONS], frontAndTops -> {
 | |
| 		for (FrontAndTop frontAndTop : values()) {
 | |
| 			frontAndTops[lookupKey(frontAndTop.front, frontAndTop.top)] = frontAndTop;
 | |
| 		}
 | |
| 	});
 | |
| 	private final String name;
 | |
| 	private final Direction top;
 | |
| 	private final Direction front;
 | |
| 
 | |
| 	private static int lookupKey(Direction front, Direction top) {
 | |
| 		return front.ordinal() * NUM_DIRECTIONS + top.ordinal();
 | |
| 	}
 | |
| 
 | |
| 	private FrontAndTop(final String name, final Direction front, final Direction top) {
 | |
| 		this.name = name;
 | |
| 		this.front = front;
 | |
| 		this.top = top;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public String getSerializedName() {
 | |
| 		return this.name;
 | |
| 	}
 | |
| 
 | |
| 	public static FrontAndTop fromFrontAndTop(Direction front, Direction top) {
 | |
| 		return BY_TOP_FRONT[lookupKey(front, top)];
 | |
| 	}
 | |
| 
 | |
| 	public Direction front() {
 | |
| 		return this.front;
 | |
| 	}
 | |
| 
 | |
| 	public Direction top() {
 | |
| 		return this.top;
 | |
| 	}
 | |
| }
 |