CLASS net/minecraft/class_2338 net/minecraft/util/math/BlockPos
	COMMENT Represents the position of a block in a three-dimensional volume.
	COMMENT
	COMMENT <p>The position is integer-valued.
	COMMENT
	COMMENT <p>A block position may be mutable; hence, when using block positions
	COMMENT obtained from other places as map keys, etc., you should call {@link
	COMMENT #toImmutable()} to obtain an immutable block position.
	FIELD field_10973 BITS_Z J
	FIELD field_10974 BITS_Y J
	FIELD field_10975 SIZE_BITS_Y I
	FIELD field_10976 BITS_X J
	FIELD field_10977 SIZE_BITS_Z I
	FIELD field_10978 SIZE_BITS_X I
	FIELD field_10980 ORIGIN Lnet/minecraft/class_2338;
		COMMENT The block position which x, y, and z values are all zero.
	FIELD field_10981 BIT_SHIFT_X I
	FIELD field_10983 BIT_SHIFT_Z I
	FIELD field_18789 LOGGER Lorg/apache/logging/log4j/Logger;
	FIELD field_25064 CODEC Lcom/mojang/serialization/Codec;
	METHOD <init> (Lnet/minecraft/class_2374;)V
		ARG 1 pos
	METHOD <init> (Lnet/minecraft/class_2382;)V
		ARG 1 pos
	METHOD <init> (Lnet/minecraft/class_243;)V
		ARG 1 pos
	METHOD method_10060 offset (JLnet/minecraft/class_2350;)J
		ARG 0 value
		ARG 2 direction
	METHOD method_10061 unpackLongX (J)I
		ARG 0 packedPos
	METHOD method_10062 toImmutable ()Lnet/minecraft/class_2338;
		COMMENT Returns an immutable block position with the same x, y, and z as this
		COMMENT position.
		COMMENT
		COMMENT <p>This method should be called when a block position is used as map
		COMMENT keys as to prevent side effects of mutations of mutable block positions.
	METHOD method_10063 asLong ()J
	METHOD method_10064 asLong (III)J
		ARG 0 x
		ARG 1 y
		ARG 2 z
	METHOD method_10067 west ()Lnet/minecraft/class_2338;
	METHOD method_10070 rotate (Lnet/minecraft/class_2470;)Lnet/minecraft/class_2338;
		ARG 1 rotation
	METHOD method_10071 unpackLongY (J)I
		ARG 0 packedPos
	METHOD method_10072 south ()Lnet/minecraft/class_2338;
	METHOD method_10075 crossProduct (Lnet/minecraft/class_2382;)Lnet/minecraft/class_2338;
		ARG 1 pos
	METHOD method_10076 north (I)Lnet/minecraft/class_2338;
		ARG 1 distance
	METHOD method_10077 south (I)Lnet/minecraft/class_2338;
		ARG 1 distance
	METHOD method_10078 east ()Lnet/minecraft/class_2338;
	METHOD method_10083 unpackLongZ (J)I
		ARG 0 packedPos
	METHOD method_10084 up ()Lnet/minecraft/class_2338;
	METHOD method_10086 up (I)Lnet/minecraft/class_2338;
		ARG 1 distance
	METHOD method_10088 west (I)Lnet/minecraft/class_2338;
		ARG 1 distance
	METHOD method_10089 east (I)Lnet/minecraft/class_2338;
		ARG 1 distance
	METHOD method_10091 removeChunkSectionLocalY (J)J
		ARG 0 y
	METHOD method_10092 fromLong (J)Lnet/minecraft/class_2338;
		ARG 0 packedPos
	METHOD method_10094 iterate (IIIIII)Ljava/lang/Iterable;
		ARG 0 startX
		ARG 1 startY
		ARG 2 startZ
		ARG 3 endX
		ARG 4 endY
		ARG 5 endZ
	METHOD method_10095 north ()Lnet/minecraft/class_2338;
	METHOD method_10096 add (JIII)J
		ARG 0 value
		ARG 2 x
		ARG 3 y
		ARG 4 z
	METHOD method_10097 iterate (Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;)Ljava/lang/Iterable;
		ARG 0 start
		ARG 1 end
	METHOD method_17962 stream (IIIIII)Ljava/util/stream/Stream;
		ARG 0 startX
		ARG 1 startY
		ARG 2 startZ
		ARG 3 endX
		ARG 4 endY
		ARG 5 endZ
	METHOD method_20437 stream (Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;)Ljava/util/stream/Stream;
		ARG 0 start
		ARG 1 end
	METHOD method_23627 stream (Lnet/minecraft/class_3341;)Ljava/util/stream/Stream;
		ARG 0 box
	METHOD method_25503 mutableCopy ()Lnet/minecraft/class_2338$class_2339;
		COMMENT Returns a mutable copy of this block position.
		COMMENT
		COMMENT <p>If this block position is a mutable one, mutation to this block
		COMMENT position won't affect the returned position.
	METHOD method_25996 iterateOutwards (Lnet/minecraft/class_2338;III)Ljava/lang/Iterable;
		COMMENT Iterates block positions around the {@code center}. The iteration order
		COMMENT is mainly based on the manhattan distance of the position from the
		COMMENT center.
		COMMENT
		COMMENT <p>For the same manhattan distance, the positions are iterated by y
		COMMENT offset, from negative to positive. For the same y offset, the positions
		COMMENT are iterated by x offset, from negative to positive. For the two
		COMMENT positions with the same x and y offsets and the same manhattan distance,
		COMMENT the one with a positive z offset is visited first before the one with a
		COMMENT negative z offset.
		ARG 0 center
			COMMENT the center of iteration
		ARG 1 xRange
			COMMENT the maximum x difference from the center
		ARG 2 yRange
			COMMENT the maximum y difference from the center
		ARG 3 zRange
			COMMENT the maximum z difference from the center
	METHOD method_25997 findClosest (Lnet/minecraft/class_2338;IILjava/util/function/Predicate;)Ljava/util/Optional;
		ARG 0 pos
		ARG 1 horizontalRange
		ARG 2 verticalRange
		ARG 3 condition
	METHOD method_25998 streamOutwards (Lnet/minecraft/class_2338;III)Ljava/util/stream/Stream;
		ARG 0 center
		ARG 1 maxX
		ARG 2 maxY
		ARG 3 maxZ
	METHOD method_27156 iterateRandomly (Ljava/util/Random;IIIIIII)Ljava/lang/Iterable;
		COMMENT Iterates through {@code count} random block positions in the given area.
		COMMENT
		COMMENT <p>The iterator yields positions in no specific order. The same position
		COMMENT may be returned multiple times by the iterator.
		ARG 0 random
			COMMENT the {@link Random} object used to compute new positions
		ARG 1 count
			COMMENT the number of positions to iterate
		ARG 2 minX
			COMMENT the minimum x value for returned positions
		ARG 3 minY
			COMMENT the minimum y value for returned positions
		ARG 4 minZ
			COMMENT the minimum z value for returned positions
		ARG 5 maxX
			COMMENT the maximum x value for returned positions
		ARG 6 maxY
			COMMENT the maximum y value for returned positions
		ARG 7 maxZ
			COMMENT the maximum z value for returned positions
	METHOD method_29093 (Lnet/minecraft/class_2338;)Ljava/util/stream/IntStream;
		ARG 0 pos
	METHOD method_29094 (Ljava/util/stream/IntStream;)Lcom/mojang/serialization/DataResult;
		ARG 0 stream
	METHOD method_29095 ([I)Lnet/minecraft/class_2338;
		ARG 0 values
	METHOD method_29715 stream (Lnet/minecraft/class_238;)Ljava/util/stream/Stream;
		ARG 0 box
	METHOD method_30512 iterateInSquare (Lnet/minecraft/class_2338;ILnet/minecraft/class_2350;Lnet/minecraft/class_2350;)Ljava/lang/Iterable;
		COMMENT Iterates block positions around the {@code center} in a square of
		COMMENT ({@code 2 * radius + 1}) by ({@code 2 * radius + 1}). The blocks
		COMMENT are iterated in a (square) spiral around the center.
		COMMENT
		COMMENT <p>The first block returned is the center, then the iterator moves
		COMMENT a block towards the first direction, followed by moving along
		COMMENT the second direction.
		COMMENT
		COMMENT @param center the center of iteration
		COMMENT @param radius the maximum chebychev distance
		COMMENT @param firstDirection the direction the iterator moves first
		COMMENT @param secondDirection the direction the iterator moves after the first
		COMMENT
		COMMENT @throws IllegalStateException when the 2 directions lie on the same axis
		ARG 0 center
		ARG 1 radius
		ARG 2 firstDirection
		ARG 3 secondDirection
	METHOD method_33096 withY (I)Lnet/minecraft/class_2338;
		ARG 1 y
	METHOD method_34848 iterateRandomly (Ljava/util/Random;ILnet/minecraft/class_2338;I)Ljava/lang/Iterable;
		COMMENT Iterates through {@code count} random block positions in a given range around the given position.
		COMMENT
		COMMENT <p>The iterator yields positions in no specific order. The same position
		COMMENT may be returned multiple times by the iterator.
		ARG 0 random
			COMMENT the {@link Random} object used to compute new positions
		ARG 1 count
			COMMENT the number of positions to iterate
		ARG 2 around
			COMMENT the {@link BlockPos} to iterate around
		ARG 3 range
			COMMENT the maximum distance from the given pos in any axis
	CLASS 1
		FIELD field_23945 pos Lnet/minecraft/class_2338$class_2339;
		FIELD field_23946 remaining I
	CLASS 2
		FIELD field_23094 maxDistance I
		FIELD field_23095 xRange I
		FIELD field_23096 yRange I
		FIELD field_23097 zRange I
		FIELD field_23099 manhattanDistance I
		FIELD field_23100 limitX I
		FIELD field_23101 limitY I
		FIELD field_23102 dx I
		FIELD field_23103 dy I
		FIELD field_23378 pos Lnet/minecraft/class_2338$class_2339;
		FIELD field_23379 swapZ Z
	CLASS 3
		FIELD field_23105 size I
		FIELD field_23106 sizeX I
		FIELD field_23107 sizeY I
		FIELD field_23108 startX I
		FIELD field_23109 startY I
		FIELD field_23110 startZ I
		FIELD field_23111 index I
		FIELD field_23380 pos Lnet/minecraft/class_2338$class_2339;
	CLASS 4
		FIELD field_25903 directions [Lnet/minecraft/class_2350;
		FIELD field_25904 pos Lnet/minecraft/class_2338$class_2339;
		FIELD field_25905 maxDirectionChanges I
		FIELD field_25906 directionChangeCount I
		FIELD field_25907 maxSteps I
		FIELD field_25908 steps I
		FIELD field_25909 currentX I
		FIELD field_25910 currentY I
		FIELD field_25911 currentZ I
	CLASS class_2339 Mutable
		METHOD method_10098 move (Lnet/minecraft/class_2350;)Lnet/minecraft/class_2338$class_2339;
			COMMENT Moves this mutable block position by 1 block in the given direction.
			ARG 1 direction
		METHOD method_10100 move (III)Lnet/minecraft/class_2338$class_2339;
			COMMENT Moves the mutable block position by the delta x, y, and z provided.
			ARG 1 dx
			ARG 2 dy
			ARG 3 dz
		METHOD method_10101 set (Lnet/minecraft/class_2382;)Lnet/minecraft/class_2338$class_2339;
			ARG 1 pos
		METHOD method_10102 set (DDD)Lnet/minecraft/class_2338$class_2339;
			ARG 1 x
			ARG 3 y
			ARG 5 z
		METHOD method_10103 set (III)Lnet/minecraft/class_2338$class_2339;
			COMMENT Sets the x, y, and z of this mutable block position.
			ARG 1 x
			ARG 2 y
			ARG 3 z
		METHOD method_10104 move (Lnet/minecraft/class_2350;I)Lnet/minecraft/class_2338$class_2339;
			COMMENT Moves this mutable block position by the given distance in the given
			COMMENT direction.
			ARG 1 direction
			ARG 2 distance
		METHOD method_16363 set (J)Lnet/minecraft/class_2338$class_2339;
			ARG 1 pos
		METHOD method_17965 set (Lnet/minecraft/class_2335;III)Lnet/minecraft/class_2338$class_2339;
			ARG 1 axis
			ARG 2 x
			ARG 3 y
			ARG 4 z
		METHOD method_25504 set (Lnet/minecraft/class_2382;III)Lnet/minecraft/class_2338$class_2339;
			COMMENT Sets this mutable block position to the sum of the given position and the
			COMMENT given x, y, and z.
			ARG 1 pos
			ARG 2 x
			ARG 3 y
			ARG 4 z
		METHOD method_25505 set (Lnet/minecraft/class_2382;Lnet/minecraft/class_2350;)Lnet/minecraft/class_2338$class_2339;
			COMMENT Sets this mutable block position to the offset position of the given
			COMMENT pos by the given direction.
			ARG 1 pos
			ARG 2 direction
		METHOD method_27158 clamp (Lnet/minecraft/class_2350$class_2351;II)Lnet/minecraft/class_2338$class_2339;
			COMMENT Clamps the component corresponding to the given {@code axis} between {@code min} and {@code max}.
			ARG 1 axis
			ARG 2 min
			ARG 3 max
		METHOD method_30927 move (Lnet/minecraft/class_2382;)Lnet/minecraft/class_2338$class_2339;
			ARG 1 vec
		METHOD method_35831 set (Lnet/minecraft/class_2382;Lnet/minecraft/class_2382;)Lnet/minecraft/class_2338$class_2339;
			COMMENT Sets this mutable block position to the sum of the given vectors.
			ARG 1 vec1
			ARG 2 vec2
