CLASS net/minecraft/class_2338 net/minecraft/util/math/BlockPos COMMENT Represents the position of a block in a three-dimensional volume. COMMENT COMMENT

The position is integer-valued. COMMENT COMMENT

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 (Lnet/minecraft/class_2374;)V ARG 1 pos METHOD (Lnet/minecraft/class_2382;)V ARG 1 pos METHOD (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

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

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

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

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

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

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