Class Vec3i

java.lang.Object
net.minecraft.util.math.Vec3i
All Implemented Interfaces:
Comparable<Vec3i>
Direct Known Subclasses:
BlockPos, ChunkSectionPos

@Unmodifiable public class Vec3i extends Object implements Comparable<Vec3i>
A vector composed of 3 integers.

This class is very often used to hold the coordinates. To hold a block position specifically, use BlockPos instead, which extends Vec3i. To hold positions for entities and other non-voxels, consider using Vec3f (that holds values using float) or Vec3d (that holds values using double) instead.

Vec3i is read-only, but subclasses like BlockPos.Mutable may be mutable. Make sure to sanitize inputs of Vec3i if needed, such as calling BlockPos.toImmutable() or making new copies.

See Also:
Mappings:
Namespace Name
official hs
intermediary net/minecraft/class_2382
named net/minecraft/util/math/Vec3i
  • Field Details

    • CODEC

      public static final com.mojang.serialization.Codec<Vec3i> CODEC
      Mappings:
      Namespace Name Mixin selector
      official f Lhs;f:Lcom/mojang/serialization/Codec;
      intermediary field_25123 Lnet/minecraft/class_2382;field_25123:Lcom/mojang/serialization/Codec;
      named CODEC Lnet/minecraft/util/math/Vec3i;CODEC:Lcom/mojang/serialization/Codec;
    • ZERO

      public static final Vec3i ZERO
      Mappings:
      Namespace Name Mixin selector
      official g Lhs;g:Lhs;
      intermediary field_11176 Lnet/minecraft/class_2382;field_11176:Lnet/minecraft/class_2382;
      named ZERO Lnet/minecraft/util/math/Vec3i;ZERO:Lnet/minecraft/util/math/Vec3i;
    • x

      private int x
      Mappings:
      Namespace Name Mixin selector
      official a Lhs;a:I
      intermediary field_11175 Lnet/minecraft/class_2382;field_11175:I
      named x Lnet/minecraft/util/math/Vec3i;x:I
    • y

      private int y
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b:I
      intermediary field_11174 Lnet/minecraft/class_2382;field_11174:I
      named y Lnet/minecraft/util/math/Vec3i;y:I
    • z

      private int z
      Mappings:
      Namespace Name Mixin selector
      official c Lhs;c:I
      intermediary field_11173 Lnet/minecraft/class_2382;field_11173:I
      named z Lnet/minecraft/util/math/Vec3i;z:I
  • Constructor Details

    • Vec3i

      public Vec3i(int x, int y, int z)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lhs;<init>(III)V
      intermediary <init> Lnet/minecraft/class_2382;<init>(III)V
      named <init> Lnet/minecraft/util/math/Vec3i;<init>(III)V
    • Vec3i

      public Vec3i(double x, double y, double z)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lhs;<init>(DDD)V
      intermediary <init> Lnet/minecraft/class_2382;<init>(DDD)V
      named <init> Lnet/minecraft/util/math/Vec3i;<init>(DDD)V
  • Method Details

    • createRangeValidator

      private static Function<Vec3i,com.mojang.serialization.DataResult<Vec3i>> createRangeValidator(int maxAbsValue)
      Mappings:
      Namespace Name Mixin selector
      official a Lhs;a(I)Ljava/util/function/Function;
      intermediary method_39675 Lnet/minecraft/class_2382;method_39675(I)Ljava/util/function/Function;
      named createRangeValidator Lnet/minecraft/util/math/Vec3i;createRangeValidator(I)Ljava/util/function/Function;
    • createOffsetCodec

      public static com.mojang.serialization.Codec<Vec3i> createOffsetCodec(int maxAbsValue)
      Mappings:
      Namespace Name Mixin selector
      official v Lhs;v(I)Lcom/mojang/serialization/Codec;
      intermediary method_39677 Lnet/minecraft/class_2382;method_39677(I)Lcom/mojang/serialization/Codec;
      named createOffsetCodec Lnet/minecraft/util/math/Vec3i;createOffsetCodec(I)Lcom/mojang/serialization/Codec;
    • equals

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

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

      public int method_10265(Vec3i vec3i)
      Mappings:
      Namespace Name Mixin selector
      official i Lhs;i(Lhs;)I
      intermediary method_10265 Lnet/minecraft/class_2382;method_10265(Lnet/minecraft/class_2382;)I
      named method_10265 Lnet/minecraft/util/math/Vec3i;method_10265(Lnet/minecraft/util/math/Vec3i;)I
    • getX

      public int getX()
      Mappings:
      Namespace Name Mixin selector
      official u Lhs;u()I
      intermediary method_10263 Lnet/minecraft/class_2382;method_10263()I
      named getX Lnet/minecraft/util/math/Vec3i;getX()I
    • getY

      public int getY()
      Mappings:
      Namespace Name Mixin selector
      official v Lhs;v()I
      intermediary method_10264 Lnet/minecraft/class_2382;method_10264()I
      named getY Lnet/minecraft/util/math/Vec3i;getY()I
    • getZ

      public int getZ()
      Mappings:
      Namespace Name Mixin selector
      official w Lhs;w()I
      intermediary method_10260 Lnet/minecraft/class_2382;method_10260()I
      named getZ Lnet/minecraft/util/math/Vec3i;getZ()I
    • setX

      protected Vec3i setX(int x)
      Mappings:
      Namespace Name Mixin selector
      official u Lhs;u(I)Lhs;
      intermediary method_20787 Lnet/minecraft/class_2382;method_20787(I)Lnet/minecraft/class_2382;
      named setX Lnet/minecraft/util/math/Vec3i;setX(I)Lnet/minecraft/util/math/Vec3i;
    • setY

      protected Vec3i setY(int y)
      Mappings:
      Namespace Name Mixin selector
      official t Lhs;t(I)Lhs;
      intermediary method_10099 Lnet/minecraft/class_2382;method_10099(I)Lnet/minecraft/class_2382;
      named setY Lnet/minecraft/util/math/Vec3i;setY(I)Lnet/minecraft/util/math/Vec3i;
    • setZ

      protected Vec3i setZ(int z)
      Mappings:
      Namespace Name Mixin selector
      official s Lhs;s(I)Lhs;
      intermediary method_20788 Lnet/minecraft/class_2382;method_20788(I)Lnet/minecraft/class_2382;
      named setZ Lnet/minecraft/util/math/Vec3i;setZ(I)Lnet/minecraft/util/math/Vec3i;
    • add

      public Vec3i add(double x, double y, double z)
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b(DDD)Lhs;
      intermediary method_35849 Lnet/minecraft/class_2382;method_35849(DDD)Lnet/minecraft/class_2382;
      named add Lnet/minecraft/util/math/Vec3i;add(DDD)Lnet/minecraft/util/math/Vec3i;
    • add

      public Vec3i add(int x, int y, int z)
      Mappings:
      Namespace Name Mixin selector
      official c Lhs;c(III)Lhs;
      intermediary method_34592 Lnet/minecraft/class_2382;method_34592(III)Lnet/minecraft/class_2382;
      named add Lnet/minecraft/util/math/Vec3i;add(III)Lnet/minecraft/util/math/Vec3i;
    • add

      public Vec3i add(Vec3i vec)
      Mappings:
      Namespace Name Mixin selector
      official f Lhs;f(Lhs;)Lhs;
      intermediary method_35853 Lnet/minecraft/class_2382;method_35853(Lnet/minecraft/class_2382;)Lnet/minecraft/class_2382;
      named add Lnet/minecraft/util/math/Vec3i;add(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3i;
    • subtract

      public Vec3i subtract(Vec3i vec)
      Mappings:
      Namespace Name Mixin selector
      official e Lhs;e(Lhs;)Lhs;
      intermediary method_35852 Lnet/minecraft/class_2382;method_35852(Lnet/minecraft/class_2382;)Lnet/minecraft/class_2382;
      named subtract Lnet/minecraft/util/math/Vec3i;subtract(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3i;
    • multiply

      public Vec3i multiply(int scale)
      Mappings:
      Namespace Name Mixin selector
      official o Lhs;o(I)Lhs;
      intermediary method_35862 Lnet/minecraft/class_2382;method_35862(I)Lnet/minecraft/class_2382;
      named multiply Lnet/minecraft/util/math/Vec3i;multiply(I)Lnet/minecraft/util/math/Vec3i;
    • up

      public Vec3i up()
      Returns a vector which is offset by 1 in the upward direction.
      Returns:
      a vector which is offset by 1 in the upward direction
      Mappings:
      Namespace Name Mixin selector
      official o Lhs;o()Lhs;
      intermediary method_30931 Lnet/minecraft/class_2382;method_30931()Lnet/minecraft/class_2382;
      named up Lnet/minecraft/util/math/Vec3i;up()Lnet/minecraft/util/math/Vec3i;
    • up

      public Vec3i up(int distance)
      Returns a vector which is offset by distance in the upward direction.
      Returns:
      a vector which is offset by distance in the upward direction
      Implementation Note:
      This can return the same vector if distance equals 0.
      Mappings:
      Namespace Name Mixin selector
      official n Lhs;n(I)Lhs;
      intermediary method_30930 Lnet/minecraft/class_2382;method_30930(I)Lnet/minecraft/class_2382;
      named up Lnet/minecraft/util/math/Vec3i;up(I)Lnet/minecraft/util/math/Vec3i;
    • down

      public Vec3i down()
      Mappings:
      Namespace Name Mixin selector
      official n Lhs;n()Lhs;
      intermediary method_23228 Lnet/minecraft/class_2382;method_23228()Lnet/minecraft/class_2382;
      named down Lnet/minecraft/util/math/Vec3i;down()Lnet/minecraft/util/math/Vec3i;
    • down

      public Vec3i down(int distance)
      Mappings:
      Namespace Name Mixin selector
      official m Lhs;m(I)Lhs;
      intermediary method_23227 Lnet/minecraft/class_2382;method_23227(I)Lnet/minecraft/class_2382;
      named down Lnet/minecraft/util/math/Vec3i;down(I)Lnet/minecraft/util/math/Vec3i;
    • north

      public Vec3i north()
      Returns a vector which is offset by 1 in the northward direction.
      Returns:
      a vector which is offset by 1 in the northward direction
      Mappings:
      Namespace Name Mixin selector
      official m Lhs;m()Lhs;
      intermediary method_35861 Lnet/minecraft/class_2382;method_35861()Lnet/minecraft/class_2382;
      named north Lnet/minecraft/util/math/Vec3i;north()Lnet/minecraft/util/math/Vec3i;
    • north

      public Vec3i north(int distance)
      Returns a vector which is offset by distance in the northward direction.
      Returns:
      a vector which is offset by distance in the northward direction
      Implementation Note:
      This can return the same vector if distance equals 0.
      Mappings:
      Namespace Name Mixin selector
      official l Lhs;l(I)Lhs;
      intermediary method_35860 Lnet/minecraft/class_2382;method_35860(I)Lnet/minecraft/class_2382;
      named north Lnet/minecraft/util/math/Vec3i;north(I)Lnet/minecraft/util/math/Vec3i;
    • south

      public Vec3i south()
      Returns a vector which is offset by 1 in the southward direction.
      Returns:
      a vector which is offset by 1 in the southward direction
      Mappings:
      Namespace Name Mixin selector
      official l Lhs;l()Lhs;
      intermediary method_35859 Lnet/minecraft/class_2382;method_35859()Lnet/minecraft/class_2382;
      named south Lnet/minecraft/util/math/Vec3i;south()Lnet/minecraft/util/math/Vec3i;
    • south

      public Vec3i south(int distance)
      Returns a vector which is offset by distance in the southward direction.
      Returns:
      a vector which is offset by distance in the southward direction
      Implementation Note:
      This can return the same vector if distance equals 0.
      Mappings:
      Namespace Name Mixin selector
      official k Lhs;k(I)Lhs;
      intermediary method_35858 Lnet/minecraft/class_2382;method_35858(I)Lnet/minecraft/class_2382;
      named south Lnet/minecraft/util/math/Vec3i;south(I)Lnet/minecraft/util/math/Vec3i;
    • west

      public Vec3i west()
      Returns a vector which is offset by 1 in the westward direction.
      Returns:
      a vector which is offset by 1 in the westward direction
      Mappings:
      Namespace Name Mixin selector
      official k Lhs;k()Lhs;
      intermediary method_35857 Lnet/minecraft/class_2382;method_35857()Lnet/minecraft/class_2382;
      named west Lnet/minecraft/util/math/Vec3i;west()Lnet/minecraft/util/math/Vec3i;
    • west

      public Vec3i west(int distance)
      Returns a vector which is offset by distance in the westward direction.
      Returns:
      a vector which is offset by distance in the westward direction
      Implementation Note:
      This can return the same vector if distance equals 0.
      Mappings:
      Namespace Name Mixin selector
      official j Lhs;j(I)Lhs;
      intermediary method_35856 Lnet/minecraft/class_2382;method_35856(I)Lnet/minecraft/class_2382;
      named west Lnet/minecraft/util/math/Vec3i;west(I)Lnet/minecraft/util/math/Vec3i;
    • east

      public Vec3i east()
      Returns a vector which is offset by 1 in the eastward direction.
      Returns:
      a vector which is offset by 1 in the eastward direction
      Mappings:
      Namespace Name Mixin selector
      official j Lhs;j()Lhs;
      intermediary method_35855 Lnet/minecraft/class_2382;method_35855()Lnet/minecraft/class_2382;
      named east Lnet/minecraft/util/math/Vec3i;east()Lnet/minecraft/util/math/Vec3i;
    • east

      public Vec3i east(int distance)
      Returns a vector which is offset by distance in the eastward direction.
      Returns:
      a vector which is offset by distance in the eastward direction
      Implementation Note:
      This can return the same vector if distance equals 0.
      Mappings:
      Namespace Name Mixin selector
      official i Lhs;i(I)Lhs;
      intermediary method_35854 Lnet/minecraft/class_2382;method_35854(I)Lnet/minecraft/class_2382;
      named east Lnet/minecraft/util/math/Vec3i;east(I)Lnet/minecraft/util/math/Vec3i;
    • offset

      public Vec3i offset(Direction direction)
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b(Lgw;)Lhs;
      intermediary method_35851 Lnet/minecraft/class_2382;method_35851(Lnet/minecraft/class_2350;)Lnet/minecraft/class_2382;
      named offset Lnet/minecraft/util/math/Vec3i;offset(Lnet/minecraft/util/math/Direction;)Lnet/minecraft/util/math/Vec3i;
    • offset

      public Vec3i offset(Direction direction, int distance)
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b(Lgw;I)Lhs;
      intermediary method_23226 Lnet/minecraft/class_2382;method_23226(Lnet/minecraft/class_2350;I)Lnet/minecraft/class_2382;
      named offset Lnet/minecraft/util/math/Vec3i;offset(Lnet/minecraft/util/math/Direction;I)Lnet/minecraft/util/math/Vec3i;
    • offset

      public Vec3i offset(Direction.Axis axis, int distance)
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b(Lgw$a;I)Lhs;
      intermediary method_35850 Lnet/minecraft/class_2382;method_35850(Lnet/minecraft/class_2350$class_2351;I)Lnet/minecraft/class_2382;
      named offset Lnet/minecraft/util/math/Vec3i;offset(Lnet/minecraft/util/math/Direction$Axis;I)Lnet/minecraft/util/math/Vec3i;
    • crossProduct

      public Vec3i crossProduct(Vec3i vec)
      Mappings:
      Namespace Name Mixin selector
      official d Lhs;d(Lhs;)Lhs;
      intermediary method_10259 Lnet/minecraft/class_2382;method_10259(Lnet/minecraft/class_2382;)Lnet/minecraft/class_2382;
      named crossProduct Lnet/minecraft/util/math/Vec3i;crossProduct(Lnet/minecraft/util/math/Vec3i;)Lnet/minecraft/util/math/Vec3i;
    • isWithinDistance

      public boolean isWithinDistance(Vec3i vec, double distance)
      Returns whether the distance between here and vec is less than distance.
      Returns:
      whether the distance between here and vec is less than distance
      Mappings:
      Namespace Name Mixin selector
      official a Lhs;a(Lhs;D)Z
      intermediary method_19771 Lnet/minecraft/class_2382;method_19771(Lnet/minecraft/class_2382;D)Z
      named isWithinDistance Lnet/minecraft/util/math/Vec3i;isWithinDistance(Lnet/minecraft/util/math/Vec3i;D)Z
    • isWithinDistance

      public boolean isWithinDistance(Position pos, double distance)
      Returns whether the distance between here and pos is less than distance.
      Returns:
      whether the distance between here and pos is less than distance
      Mappings:
      Namespace Name Mixin selector
      official a Lhs;a(Lhi;D)Z
      intermediary method_19769 Lnet/minecraft/class_2382;method_19769(Lnet/minecraft/class_2374;D)Z
      named isWithinDistance Lnet/minecraft/util/math/Vec3i;isWithinDistance(Lnet/minecraft/util/math/Position;D)Z
    • getSquaredDistance

      public double getSquaredDistance(Vec3i vec)
      Returns the squared distance between here (center) and vec.
      Returns:
      the squared distance between here (center) and vec
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official j Lhs;j(Lhs;)D
      intermediary method_10262 Lnet/minecraft/class_2382;method_10262(Lnet/minecraft/class_2382;)D
      named getSquaredDistance Lnet/minecraft/util/math/Vec3i;getSquaredDistance(Lnet/minecraft/util/math/Vec3i;)D
    • getSquaredDistance

      public double getSquaredDistance(Position pos)
      Returns the squared distance between here and pos.
      Returns:
      the squared distance between here and pos
      Mappings:
      Namespace Name Mixin selector
      official b Lhs;b(Lhi;)D
      intermediary method_19770 Lnet/minecraft/class_2382;method_19770(Lnet/minecraft/class_2374;)D
      named getSquaredDistance Lnet/minecraft/util/math/Vec3i;getSquaredDistance(Lnet/minecraft/util/math/Position;)D
    • getSquaredDistanceFromCenter

      public double getSquaredDistanceFromCenter(double x, double y, double z)
      Returns the squared distance between the center of this voxel and (x, y, z). This is equivalent to Vec3d.ofCenter(this).squaredDistanceTo(x, y, z).
      Returns:
      the squared distance between the center of this voxel and (x, y, z)
      Mappings:
      Namespace Name Mixin selector
      official d Lhs;d(DDD)D
      intermediary method_10268 Lnet/minecraft/class_2382;method_10268(DDD)D
      named getSquaredDistanceFromCenter Lnet/minecraft/util/math/Vec3i;getSquaredDistanceFromCenter(DDD)D
    • getSquaredDistance

      public double getSquaredDistance(double x, double y, double z)
      Returns the squared distance between here and (x, y, z). This is equivalent to Vec3d.of(this).squaredDistanceTo(x, y, z).
      Returns:
      the squared distance between here and (x, y, z)
      Mappings:
      Namespace Name Mixin selector
      official e Lhs;e(DDD)D
      intermediary method_40081 Lnet/minecraft/class_2382;method_40081(DDD)D
      named getSquaredDistance Lnet/minecraft/util/math/Vec3i;getSquaredDistance(DDD)D
    • getManhattanDistance

      public int getManhattanDistance(Vec3i vec)
      Returns the Manhattan distance between here and vec.

      Manhattan distance, also called taxicab distance or snake distance, is the distance measured as the sum of the absolute differences of their coordinates. For example, the Manhattan distance between (0, 0, 0) and (1, 1, 1) is 3.

      Returns:
      the Manhattan distance between here and vec
      Mappings:
      Namespace Name Mixin selector
      official k Lhs;k(Lhs;)I
      intermediary method_19455 Lnet/minecraft/class_2382;method_19455(Lnet/minecraft/class_2382;)I
      named getManhattanDistance Lnet/minecraft/util/math/Vec3i;getManhattanDistance(Lnet/minecraft/util/math/Vec3i;)I
    • getComponentAlongAxis

      public int getComponentAlongAxis(Direction.Axis axis)
      Returns the component on the axis axis.
      Returns:
      the component on the axis axis
      Mappings:
      Namespace Name Mixin selector
      official a Lhs;a(Lgw$a;)I
      intermediary method_30558 Lnet/minecraft/class_2382;method_30558(Lnet/minecraft/class_2350$class_2351;)I
      named getComponentAlongAxis Lnet/minecraft/util/math/Vec3i;getComponentAlongAxis(Lnet/minecraft/util/math/Direction$Axis;)I
    • toString

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

      public String toShortString()
      Returns the coordinates joined with a colon and a space.
      Returns:
      the coordinates joined with a colon and a space
      Mappings:
      Namespace Name Mixin selector
      official x Lhs;x()Ljava/lang/String;
      intermediary method_23854 Lnet/minecraft/class_2382;method_23854()Ljava/lang/String;
      named toShortString Lnet/minecraft/util/math/Vec3i;toShortString()Ljava/lang/String;