Class BetterBlockPos

java.lang.Object
net.minecraft.core.Vec3i
net.minecraft.core.BlockPos
baritone.api.utils.BetterBlockPos
All Implemented Interfaces:
Comparable<net.minecraft.core.Vec3i>

public final class BetterBlockPos extends net.minecraft.core.BlockPos
A better BlockPos that has fewer hash collisions (and slightly more performant offsets)

Is it really faster to subclass BlockPos and calculate a hash in the constructor like this, taking everything into account? Yes. 20% faster actually. It's called BETTER BlockPos for a reason. Source: Benchmark Spreadsheet

Author:
leijurv
  • Field Details

    • ORIGIN

      public static final BetterBlockPos ORIGIN
    • x

      public final int x
    • y

      public final int y
    • z

      public final int z
  • Constructor Details

  • Method Details

    • from

      public static BetterBlockPos from(net.minecraft.core.BlockPos pos)
      Like constructor but returns null if pos is null, good if you just need to possibly censor coordinates
      Parameters:
      pos - The BlockPos, possibly null, to convert
      Returns:
      A BetterBlockPos or null if pos was null
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class net.minecraft.core.Vec3i
    • longHash

      public static long longHash(BetterBlockPos pos)
    • longHash

      public static long longHash(int x, int y, int z)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class net.minecraft.core.Vec3i
    • above

      Overrides:
      above in class net.minecraft.core.BlockPos
    • above

      public BetterBlockPos above(int amt)
      Overrides:
      above in class net.minecraft.core.BlockPos
    • below

      Overrides:
      below in class net.minecraft.core.BlockPos
    • below

      public BetterBlockPos below(int amt)
      Overrides:
      below in class net.minecraft.core.BlockPos
    • relative

      public BetterBlockPos relative(net.minecraft.core.Direction dir)
      Overrides:
      relative in class net.minecraft.core.BlockPos
    • relative

      public BetterBlockPos relative(net.minecraft.core.Direction dir, int dist)
      Overrides:
      relative in class net.minecraft.core.BlockPos
    • north

      Overrides:
      north in class net.minecraft.core.BlockPos
    • north

      public BetterBlockPos north(int amt)
      Overrides:
      north in class net.minecraft.core.BlockPos
    • south

      Overrides:
      south in class net.minecraft.core.BlockPos
    • south

      public BetterBlockPos south(int amt)
      Overrides:
      south in class net.minecraft.core.BlockPos
    • east

      public BetterBlockPos east()
      Overrides:
      east in class net.minecraft.core.BlockPos
    • east

      public BetterBlockPos east(int amt)
      Overrides:
      east in class net.minecraft.core.BlockPos
    • west

      public BetterBlockPos west()
      Overrides:
      west in class net.minecraft.core.BlockPos
    • west

      public BetterBlockPos west(int amt)
      Overrides:
      west in class net.minecraft.core.BlockPos
    • distanceSq

      public double distanceSq(BetterBlockPos to)
    • distanceTo

      public double distanceTo(BetterBlockPos to)
    • toString

      @Nonnull public String toString()
      Overrides:
      toString in class net.minecraft.core.Vec3i
    • serializeToLong

      public static long serializeToLong(int x, int y, int z)
    • deserializeFromLong

      public static BetterBlockPos deserializeFromLong(long serialized)