Class BlockBox

java.lang.Object
net.minecraft.util.math.BlockBox

public class BlockBox extends Object
A mutable box with integer coordinates. The box is axis-aligned and the coordinates are inclusive.

This box, though mutable, has proper hashCode and equals implementations and can be used as map keys if user can ensure they are not modified.

See Also:
Mappings:
Namespace Name
official dyy
intermediary net/minecraft/class_3341
named net/minecraft/util/math/BlockBox
  • Field Details

    • LOGGER

      private static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b:Lorg/slf4j/Logger;
      intermediary field_31548 Lnet/minecraft/class_3341;field_31548:Lorg/slf4j/Logger;
      named LOGGER Lnet/minecraft/util/math/BlockBox;LOGGER:Lorg/slf4j/Logger;
    • CODEC

      public static final com.mojang.serialization.Codec<BlockBox> CODEC
      A codec that stores a block box as an int array. In the serialized array, the ordered elements are minX, minY, minZ, maxX, maxY, maxZ.
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a:Lcom/mojang/serialization/Codec;
      intermediary field_29325 Lnet/minecraft/class_3341;field_29325:Lcom/mojang/serialization/Codec;
      named CODEC Lnet/minecraft/util/math/BlockBox;CODEC:Lcom/mojang/serialization/Codec;
    • minX

      private int minX
      Mappings:
      Namespace Name Mixin selector
      official c Ldyy;c:I
      intermediary field_14380 Lnet/minecraft/class_3341;field_14380:I
      named minX Lnet/minecraft/util/math/BlockBox;minX:I
    • minY

      private int minY
      Mappings:
      Namespace Name Mixin selector
      official d Ldyy;d:I
      intermediary field_14379 Lnet/minecraft/class_3341;field_14379:I
      named minY Lnet/minecraft/util/math/BlockBox;minY:I
    • minZ

      private int minZ
      Mappings:
      Namespace Name Mixin selector
      official e Ldyy;e:I
      intermediary field_14378 Lnet/minecraft/class_3341;field_14378:I
      named minZ Lnet/minecraft/util/math/BlockBox;minZ:I
    • maxX

      private int maxX
      Mappings:
      Namespace Name Mixin selector
      official f Ldyy;f:I
      intermediary field_14377 Lnet/minecraft/class_3341;field_14377:I
      named maxX Lnet/minecraft/util/math/BlockBox;maxX:I
    • maxY

      private int maxY
      Mappings:
      Namespace Name Mixin selector
      official g Ldyy;g:I
      intermediary field_14376 Lnet/minecraft/class_3341;field_14376:I
      named maxY Lnet/minecraft/util/math/BlockBox;maxY:I
    • maxZ

      private int maxZ
      Mappings:
      Namespace Name Mixin selector
      official h Ldyy;h:I
      intermediary field_14381 Lnet/minecraft/class_3341;field_14381:I
      named maxZ Lnet/minecraft/util/math/BlockBox;maxZ:I
  • Constructor Details

    • BlockBox

      public BlockBox(BlockPos pos)
      Creates a box enclosing only pos.
      Mappings:
      Namespace Name Mixin selector
      official <init> Ldyy;<init>(Lhx;)V
      intermediary <init> Lnet/minecraft/class_3341;<init>(Lnet/minecraft/class_2338;)V
      named <init> Lnet/minecraft/util/math/BlockBox;<init>(Lnet/minecraft/util/math/BlockPos;)V
    • BlockBox

      public BlockBox(int minX, int minY, int minZ, int maxX, int maxY, int maxZ)
      Mappings:
      Namespace Name Mixin selector
      official <init> Ldyy;<init>(IIIIII)V
      intermediary <init> Lnet/minecraft/class_3341;<init>(IIIIII)V
      named <init> Lnet/minecraft/util/math/BlockBox;<init>(IIIIII)V
  • Method Details

    • create

      public static BlockBox create(Vec3i first, Vec3i second)
      Returns a new box from two corners, first and second.
      Returns:
      a new box from two corners, first and second
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Ljb;Ljb;)Ldyy;
      intermediary method_34390 Lnet/minecraft/class_3341;method_34390(Lnet/minecraft/class_2382;Lnet/minecraft/class_2382;)Lnet/minecraft/class_3341;
      named create Lnet/minecraft/util/math/BlockBox;create(Lnet/minecraft/util/math/Vec3i;Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/BlockBox;
    • infinite

      public static BlockBox infinite()
      Returns a new all-encompassing, infinite box.
      Returns:
      a new all-encompassing, infinite box
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a()Ldyy;
      intermediary method_14665 Lnet/minecraft/class_3341;method_14665()Lnet/minecraft/class_3341;
      named infinite Lnet/minecraft/util/math/BlockBox;infinite()Lnet/minecraft/util/math/BlockBox;
    • rotated

      public static BlockBox rotated(int x, int y, int z, int offsetX, int offsetY, int offsetZ, int sizeX, int sizeY, int sizeZ, Direction facing)
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(IIIIIIIIILic;)Ldyy;
      intermediary method_14667 Lnet/minecraft/class_3341;method_14667(IIIIIIIIILnet/minecraft/class_2350;)Lnet/minecraft/class_3341;
      named rotated Lnet/minecraft/util/math/BlockBox;rotated(IIIIIIIIILnet/minecraft/util/math/Direction;)Lnet/minecraft/util/math/BlockBox;
    • streamChunkPos

      public Stream<ChunkPos> streamChunkPos()
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b()Ljava/util/stream/Stream;
      intermediary method_54883 Lnet/minecraft/class_3341;method_54883()Ljava/util/stream/Stream;
      named streamChunkPos Lnet/minecraft/util/math/BlockBox;streamChunkPos()Ljava/util/stream/Stream;
    • intersects

      public boolean intersects(BlockBox other)
      Returns whether other intersects with this box.
      Returns:
      whether other intersects with this box
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Ldyy;)Z
      intermediary method_14657 Lnet/minecraft/class_3341;method_14657(Lnet/minecraft/class_3341;)Z
      named intersects Lnet/minecraft/util/math/BlockBox;intersects(Lnet/minecraft/util/math/BlockBox;)Z
    • intersectsXZ

      public boolean intersectsXZ(int minX, int minZ, int maxX, int maxZ)
      Returns whether the rectangle from the given coordinates intersects with this box's XZ plane.
      Returns:
      whether the rectangle from the given coordinates intersects with this box's XZ plane
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(IIII)Z
      intermediary method_14669 Lnet/minecraft/class_3341;method_14669(IIII)Z
      named intersectsXZ Lnet/minecraft/util/math/BlockBox;intersectsXZ(IIII)Z
    • encompassPositions

      public static Optional<BlockBox> encompassPositions(Iterable<BlockPos> positions)
      Returns the minimum box encompassing all of the given positions, or an empty optional if positions is empty.
      Returns:
      the minimum box encompassing all of the given positions, or an empty optional if positions is empty
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Ljava/lang/Iterable;)Ljava/util/Optional;
      intermediary method_35411 Lnet/minecraft/class_3341;method_35411(Ljava/lang/Iterable;)Ljava/util/Optional;
      named encompassPositions Lnet/minecraft/util/math/BlockBox;encompassPositions(Ljava/lang/Iterable;)Ljava/util/Optional;
    • encompass

      public static Optional<BlockBox> encompass(Iterable<BlockBox> boxes)
      Returns the minimum box encompassing all of the given boxes, or an empty optional if boxes is empty.
      Returns:
      the minimum box encompassing all of the given boxes, or an empty optional if boxes is empty
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b(Ljava/lang/Iterable;)Ljava/util/Optional;
      intermediary method_35413 Lnet/minecraft/class_3341;method_35413(Ljava/lang/Iterable;)Ljava/util/Optional;
      named encompass Lnet/minecraft/util/math/BlockBox;encompass(Ljava/lang/Iterable;)Ljava/util/Optional;
    • encompass

      @Deprecated public BlockBox encompass(BlockBox box)
      Deprecated.
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b(Ldyy;)Ldyy;
      intermediary method_35412 Lnet/minecraft/class_3341;method_35412(Lnet/minecraft/class_3341;)Lnet/minecraft/class_3341;
      named encompass Lnet/minecraft/util/math/BlockBox;encompass(Lnet/minecraft/util/math/BlockBox;)Lnet/minecraft/util/math/BlockBox;
    • encompass

      @Deprecated public BlockBox encompass(BlockPos pos)
      Deprecated.
      Expands this box to encompass the pos.
      Parameters:
      pos - the pos to encompass
      Returns:
      this box, for chaining
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Lhx;)Ldyy;
      intermediary method_34389 Lnet/minecraft/class_3341;method_34389(Lnet/minecraft/class_2338;)Lnet/minecraft/class_3341;
      named encompass Lnet/minecraft/util/math/BlockBox;encompass(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/util/math/BlockBox;
    • move

      @Deprecated public BlockBox move(int dx, int dy, int dz)
      Deprecated.
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(III)Ldyy;
      intermediary method_14661 Lnet/minecraft/class_3341;method_14661(III)Lnet/minecraft/class_3341;
      named move Lnet/minecraft/util/math/BlockBox;move(III)Lnet/minecraft/util/math/BlockBox;
    • move

      @Deprecated public BlockBox move(Vec3i vec)
      Deprecated.
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Ljb;)Ldyy;
      intermediary method_29299 Lnet/minecraft/class_3341;method_29299(Lnet/minecraft/class_2382;)Lnet/minecraft/class_3341;
      named move Lnet/minecraft/util/math/BlockBox;move(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/BlockBox;
    • offset

      public BlockBox offset(int x, int y, int z)
      Returns a new box that is translated by x, y, z on each axis from this box.
      Returns:
      a new box that is translated by x, y, z on each axis from this box
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b(III)Ldyy;
      intermediary method_19311 Lnet/minecraft/class_3341;method_19311(III)Lnet/minecraft/class_3341;
      named offset Lnet/minecraft/util/math/BlockBox;offset(III)Lnet/minecraft/util/math/BlockBox;
    • expand

      public BlockBox expand(int offset)
      Returns a new box that is expanded on each direction by offset.
      Returns:
      a new box that is expanded on each direction by offset
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(I)Ldyy;
      intermediary method_35410 Lnet/minecraft/class_3341;method_35410(I)Lnet/minecraft/class_3341;
      named expand Lnet/minecraft/util/math/BlockBox;expand(I)Lnet/minecraft/util/math/BlockBox;
    • contains

      public boolean contains(Vec3i pos)
      Returns whether this box contains pos.
      Returns:
      whether this box contains pos
      Mappings:
      Namespace Name Mixin selector
      official b Ldyy;b(Ljb;)Z
      intermediary method_14662 Lnet/minecraft/class_3341;method_14662(Lnet/minecraft/class_2382;)Z
      named contains Lnet/minecraft/util/math/BlockBox;contains(Lnet/minecraft/util/math/Vec3i;)Z
    • contains

      public boolean contains(int x, int y, int z)
      Mappings:
      Namespace Name Mixin selector
      official c Ldyy;c(III)Z
      intermediary method_47593 Lnet/minecraft/class_3341;method_47593(III)Z
      named contains Lnet/minecraft/util/math/BlockBox;contains(III)Z
    • getDimensions

      public Vec3i getDimensions()
      Returns the dimensions (the size) of this box.
      Returns:
      the dimensions (the size) of this box
      Mappings:
      Namespace Name Mixin selector
      official c Ldyy;c()Ljb;
      intermediary method_14659 Lnet/minecraft/class_3341;method_14659()Lnet/minecraft/class_2382;
      named getDimensions Lnet/minecraft/util/math/BlockBox;getDimensions()Lnet/minecraft/util/math/Vec3i;
    • getBlockCountX

      public int getBlockCountX()
      Returns the number of blocks on the X axis.

      This is equal to maxX - minX + 1.

      Returns:
      the number of blocks on the X axis
      Mappings:
      Namespace Name Mixin selector
      official d Ldyy;d()I
      intermediary method_35414 Lnet/minecraft/class_3341;method_35414()I
      named getBlockCountX Lnet/minecraft/util/math/BlockBox;getBlockCountX()I
    • getBlockCountY

      public int getBlockCountY()
      Returns the number of blocks on the Y axis.

      This is equal to maxY - minY + 1.

      Returns:
      the number of blocks on the Y axis
      Mappings:
      Namespace Name Mixin selector
      official e Ldyy;e()I
      intermediary method_14660 Lnet/minecraft/class_3341;method_14660()I
      named getBlockCountY Lnet/minecraft/util/math/BlockBox;getBlockCountY()I
    • getBlockCountZ

      public int getBlockCountZ()
      Returns the number of blocks on the Z axis.

      This is equal to maxZ - minZ + 1.

      Returns:
      the number of blocks on the Z axis
      Mappings:
      Namespace Name Mixin selector
      official f Ldyy;f()I
      intermediary method_14663 Lnet/minecraft/class_3341;method_14663()I
      named getBlockCountZ Lnet/minecraft/util/math/BlockBox;getBlockCountZ()I
    • getCenter

      public BlockPos getCenter()
      Returns the center of this box.
      Returns:
      the center of this box
      API Note:
      This is biased toward the minimum bound corner of the box.
      Mappings:
      Namespace Name Mixin selector
      official g Ldyy;g()Lhx;
      intermediary method_22874 Lnet/minecraft/class_3341;method_22874()Lnet/minecraft/class_2338;
      named getCenter Lnet/minecraft/util/math/BlockBox;getCenter()Lnet/minecraft/util/math/BlockPos;
    • forEachVertex

      public void forEachVertex(Consumer<BlockPos> consumer)
      Calls consumer for each vertex (corner) of this box.
      Mappings:
      Namespace Name Mixin selector
      official a Ldyy;a(Ljava/util/function/Consumer;)V
      intermediary method_34391 Lnet/minecraft/class_3341;method_34391(Ljava/util/function/Consumer;)V
      named forEachVertex Lnet/minecraft/util/math/BlockBox;forEachVertex(Ljava/util/function/Consumer;)V
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
      Mappings:
      Namespace Name Mixin selector
      official equals Ldyy;equals(Ljava/lang/Object;)Z
      intermediary equals Lnet/minecraft/class_3341;equals(Ljava/lang/Object;)Z
      named equals Lnet/minecraft/util/math/BlockBox;equals(Ljava/lang/Object;)Z
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getMinX

      public int getMinX()
      Mappings:
      Namespace Name Mixin selector
      official h Ldyy;h()I
      intermediary method_35415 Lnet/minecraft/class_3341;method_35415()I
      named getMinX Lnet/minecraft/util/math/BlockBox;getMinX()I
    • getMinY

      public int getMinY()
      Mappings:
      Namespace Name Mixin selector
      official i Ldyy;i()I
      intermediary method_35416 Lnet/minecraft/class_3341;method_35416()I
      named getMinY Lnet/minecraft/util/math/BlockBox;getMinY()I
    • getMinZ

      public int getMinZ()
      Mappings:
      Namespace Name Mixin selector
      official j Ldyy;j()I
      intermediary method_35417 Lnet/minecraft/class_3341;method_35417()I
      named getMinZ Lnet/minecraft/util/math/BlockBox;getMinZ()I
    • getMaxX

      public int getMaxX()
      Mappings:
      Namespace Name Mixin selector
      official k Ldyy;k()I
      intermediary method_35418 Lnet/minecraft/class_3341;method_35418()I
      named getMaxX Lnet/minecraft/util/math/BlockBox;getMaxX()I
    • getMaxY

      public int getMaxY()
      Mappings:
      Namespace Name Mixin selector
      official l Ldyy;l()I
      intermediary method_35419 Lnet/minecraft/class_3341;method_35419()I
      named getMaxY Lnet/minecraft/util/math/BlockBox;getMaxY()I
    • getMaxZ

      public int getMaxZ()
      Mappings:
      Namespace Name Mixin selector
      official m Ldyy;m()I
      intermediary method_35420 Lnet/minecraft/class_3341;method_35420()I
      named getMaxZ Lnet/minecraft/util/math/BlockBox;getMaxZ()I