CLASS fa net/minecraft/util/math/Direction
	CLASS fa$a Axis
		CLASS fa$a$1
			METHOD test (Ljava/lang/Object;)Z
				ARG 1 context
		CLASS fa$a$2
			METHOD test (Ljava/lang/Object;)Z
				ARG 1 context
		CLASS fa$a$3
			METHOD test (Ljava/lang/Object;)Z
				ARG 1 context
		FIELD a X Lfa$a;
		FIELD b Y Lfa$a;
		FIELD c Z Lfa$a;
		FIELD d BY_NAME Ljava/util/Map;
		FIELD e name Ljava/lang/String;
		METHOD a getName ()Ljava/lang/String;
		METHOD a choose (DDD)D
			ARG 1 x
			ARG 3 y
			ARG 5 z
		METHOD a choose (III)I
		METHOD a fromName (Ljava/lang/String;)Lfa$a;
			ARG 0 name
		METHOD a (Ljava/util/Random;)Lfa$a;
			ARG 0 random
		METHOD b isVertical ()Z
		METHOD c isHorizontal ()Z
		METHOD d getType ()Lfa$c;
	CLASS fa$b AxisDirection
		FIELD a POSITIVE Lfa$b;
		FIELD b NEGATIVE Lfa$b;
		FIELD c offset I
		FIELD d desc Ljava/lang/String;
		METHOD a offset ()I
	CLASS fa$c Type
		FIELD a HORIZONTAL Lfa$c;
		FIELD b VERTICAL Lfa$c;
		FIELD c facingArray [Lfa;
		FIELD d axisArray [Lfa$a;
		METHOD a random (Ljava/util/Random;)Lfa;
	FIELD a DOWN Lfa;
	FIELD b UP Lfa;
	FIELD c NORTH Lfa;
	FIELD d SOUTH Lfa;
	FIELD e WEST Lfa;
	FIELD f EAST Lfa;
	FIELD g id I
	FIELD h idOpposite I
	FIELD i idHorizontal I
	FIELD j name Ljava/lang/String;
	FIELD k axis Lfa$a;
	FIELD l direction Lfa$b;
	FIELD m vector Lfq;
	FIELD n ALL [Lfa;
	FIELD o NAME_MAP Ljava/util/Map;
	FIELD p ID_TO_DIRECTION [Lfa;
	FIELD q HORIZONTAL [Lfa;
	FIELD r VECTOR_TO_DIRECTION Lit/unimi/dsi/fastutil/longs/Long2ObjectMap;
	METHOD <init> (Ljava/lang/String;IIIILjava/lang/String;Lfa$b;Lfa$a;Lfq;)V
		ARG 3 id
		ARG 4 idOpposite
		ARG 5 idHorizontal
		ARG 6 name
		ARG 7 direction
		ARG 8 axis
		ARG 9 vector
	METHOD a getId ()I
	METHOD a fromRotation (D)Lfa;
		ARG 0 rotation
	METHOD a getFacing (DDD)Lfa;
		ARG 0 x
	METHOD a getFacing (FFF)Lfa;
		ARG 0 x
		ARG 1 y
		ARG 2 z
	METHOD a byId (I)Lfa;
		ARG 0 id
	METHOD a getEntityFacingOrder (Laie;)[Lfa;
		ARG 0 entity
	METHOD a fromVector (Lev;)Lfa;
	METHOD a rotateClockwise (Lfa$a;)Lfa;
	METHOD a from (Lfa$a;Lfa$b;)Lfa;
		ARG 0 axis
		ARG 1 direction
	METHOD a get (Lfa$b;Lfa$a;)Lfa;
		ARG 0 direction
		ARG 1 axis
	METHOD a byName (Ljava/lang/String;)Lfa;
		ARG 0 name
	METHOD a random (Ljava/util/Random;)Lfa;
		ARG 0 random
	METHOD b getHorizontal ()I
	METHOD b fromHorizontal (I)Lfa;
		ARG 0 value
	METHOD c getDirection ()Lfa$b;
	METHOD d getOpposite ()Lfa;
	METHOD e rotateYClockwise ()Lfa;
	METHOD f rotateYCounterclockwise ()Lfa;
	METHOD g getOffsetX ()I
	METHOD h getOffsetY ()I
	METHOD i getOffsetZ ()I
	METHOD j getName ()Ljava/lang/String;
	METHOD k getAxis ()Lfa$a;
	METHOD l asRotation ()F
	METHOD n getVector ()Lfq;
	METHOD o rotateXClockwise ()Lfa;
	METHOD q rotateZClockwise ()Lfa;
