Class Location

java.lang.Object
com.loohp.limbo.location.Location
All Implemented Interfaces:
Cloneable

public class Location extends Object implements Cloneable
  • Constructor Details

    • Location

      public Location(World world, double x, double y, double z, float yaw, float pitch)
    • Location

      public Location(World world, double x, double y, double z)
  • Method Details

    • clone

      public Location clone()
      Overrides:
      clone in class Object
    • getBlockState

      public BlockState getBlockState()
    • setBlockState

      public void setBlockState(BlockState state)
    • isWorldLoaded

      public boolean isWorldLoaded()
    • getWorld

      public World getWorld()
    • setWorld

      public void setWorld(World world)
    • getX

      public double getX()
    • setX

      public void setX(double x)
    • getY

      public double getY()
    • setY

      public void setY(double y)
    • getZ

      public double getZ()
    • setZ

      public void setZ(double z)
    • getYaw

      public float getYaw()
    • setYaw

      public void setYaw(float yaw)
    • getPitch

      public float getPitch()
    • setPitch

      public void setPitch(float pitch)
    • getDirection

      public Vector getDirection()
      Gets a unit-vector pointing in the direction that this Location is facing.
      Returns:
      a vector pointing the direction of this location's pitch and yaw
    • setDirection

      public Location setDirection(Vector vector)
      Sets the yaw and pitch to point in the direction of the vector.
      Parameters:
      vector - the direction vector
      Returns:
      the same location
    • add

      public Location add(Location vec)
      Adds the location by another.
      Parameters:
      vec - The other location
      Returns:
      the same location
      Throws:
      IllegalArgumentException - for differing worlds
      See Also:
    • add

      public Location add(Vector vec)
      Adds the location by a vector.
      Parameters:
      vec - Vector to use
      Returns:
      the same location
      See Also:
    • add

      public Location add(double x, double y, double z)
      Adds the location by another. Not world-aware.
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
      Returns:
      the same location
      See Also:
    • subtract

      public Location subtract(Location vec)
      Subtracts the location by another.
      Parameters:
      vec - The other location
      Returns:
      the same location
      Throws:
      IllegalArgumentException - for differing worlds
      See Also:
    • subtract

      public Location subtract(Vector vec)
      Subtracts the location by a vector.
      Parameters:
      vec - The vector to use
      Returns:
      the same location
      See Also:
    • subtract

      public Location subtract(double x, double y, double z)
      Subtracts the location by another. Not world-aware and orientation independent.
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
      Returns:
      the same location
      See Also:
    • length

      public double length()
      Gets the magnitude of the location, defined as sqrt(x^2+y^2+z^2). The value of this method is not cached and uses a costly square-root function, so do not repeatedly call this method to get the location's magnitude. NaN will be returned if the inner result of the sqrt() function overflows, which will be caused if the length is too long. Not world-aware and orientation independent.
      Returns:
      the magnitude
      See Also:
    • lengthSquared

      public double lengthSquared()
      Gets the magnitude of the location squared. Not world-aware and orientation independent.
      Returns:
      the magnitude
      See Also:
    • distance

      public double distance(Location o)
      Get the distance between this location and another. The value of this method is not cached and uses a costly square-root function, so do not repeatedly call this method to get the location's magnitude. NaN will be returned if the inner result of the sqrt() function overflows, which will be caused if the distance is too long.
      Parameters:
      o - The other location
      Returns:
      the distance
      Throws:
      IllegalArgumentException - for differing worlds
      See Also:
    • distanceSquared

      public double distanceSquared(Location o)
      Get the squared distance between this location and another.
      Parameters:
      o - The other location
      Returns:
      the distance
      Throws:
      IllegalArgumentException - for differing worlds
      See Also:
    • multiply

      public Location multiply(double m)
      Performs scalar multiplication, multiplying all components with a scalar. Not world-aware.
      Parameters:
      m - The factor
      Returns:
      the same location
      See Also:
    • zero

      public Location zero()
      Zero this location's components. Not world-aware.
      Returns:
      the same location
      See Also:
    • toVector

      public Vector toVector()
      Constructs a new Vector based on this Location
      Returns:
      New Vector containing the coordinates represented by this Location
    • checkFinite

      public void checkFinite() throws IllegalArgumentException
      Check if each component of this Location is finite.
      Throws:
      IllegalArgumentException - if any component is not finite
    • locToBlock

      public static int locToBlock(double loc)
      Safely converts a double (location coordinate) to an int (block coordinate)
      Parameters:
      loc - Precise coordinate
      Returns:
      Block coordinate
    • normalizeYaw

      public static float normalizeYaw(float yaw)
      Normalizes the given yaw angle to a value between +/-180 degrees.
      Parameters:
      yaw - the yaw in degrees
      Returns:
      the normalized yaw in degrees
      See Also:
    • normalizePitch

      public static float normalizePitch(float pitch)
      Normalizes the given pitch angle to a value between +/-90 degrees.
      Parameters:
      pitch - the pitch in degrees
      Returns:
      the normalized pitch in degrees
      See Also:
    • toSimpleString

      public String toSimpleString()
    • toString

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

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object