mirror of
https://github.com/KAMKEEL/CustomNPC-Plus-API.git
synced 2026-11-14 19:04:53 +00:00
179 lines
4.3 KiB
Java
179 lines
4.3 KiB
Java
package noppes.npcs.api;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
public interface IPos {
|
|
|
|
int getX();
|
|
|
|
int getY();
|
|
|
|
int getZ();
|
|
|
|
double getXD();
|
|
|
|
double getYD();
|
|
|
|
double getZD();
|
|
|
|
/**
|
|
* Shifts the IPos up by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos up();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position up by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos up(double n);
|
|
|
|
/**
|
|
* Shifts the IPos down by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos down();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position down by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos down(double n);
|
|
|
|
/**
|
|
* Shifts the IPos north by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos north();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position north by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos north(double n);
|
|
|
|
/**
|
|
* Shifts the IPos east by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos east();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position east by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos east(double n);
|
|
|
|
/**
|
|
* Shifts the IPos south by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos south();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position south by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos south(double n);
|
|
|
|
/**
|
|
* Shifts the IPos west by 1 block and returns the new object.
|
|
*
|
|
*/
|
|
IPos west();
|
|
|
|
/**
|
|
*
|
|
* @param n The number of blocks to move the position west by.
|
|
* @return The new IPos object.
|
|
*/
|
|
IPos west(double n);
|
|
|
|
/**
|
|
* Adds the IPos' coordinates by each of the parameters given.
|
|
*
|
|
* @param x X coordinate amount to be added
|
|
* @param y Y coordinate amount to be added
|
|
* @param z Z coordinate amount to be added
|
|
* @return The resulting IPos from the addition.
|
|
*/
|
|
IPos add(double x, double y, double z);
|
|
|
|
/**
|
|
* Directly adds the coordinates of two IPos objects and returns the resulting IPos sum.
|
|
* For example, if one IPos was represented by the coordinates (0,60,5), and another by (-10,-30,25),
|
|
* the resulting object's coordinates are (0 - 10,60 - 30,5 + 25) = (-10,30,30).
|
|
*
|
|
* @param pos The position to be added to this IPos object.
|
|
* @return The sum of the two IPos objects as a new IPos object.
|
|
*/
|
|
IPos add(IPos pos);
|
|
|
|
/**
|
|
* Subtracts the IPos' coordinates by each of the parameters given.
|
|
*
|
|
* @param x X coordinate amount to be subtracted
|
|
* @param y Y coordinate amount to be subtracted
|
|
* @param z Z coordinate amount to be subtracted
|
|
* @return The resulting IPos from the subtraction.
|
|
*/
|
|
IPos subtract(double x, double y, double z);
|
|
|
|
/**
|
|
* Directly subtracts the coordinates of two IPos objects and returns the resulting IPos difference.
|
|
* For example, if one IPos was represented by the coordinates (0,60,5), and another by (-10,-30,25),
|
|
* the resulting object's coordinates are (0 + 10,60 + 30,5 - 25) = (10,90,-20).
|
|
*
|
|
* @param pos The position to be subtracted from this IPos object.
|
|
* @return The difference of the two IPos objects as a new IPos object.
|
|
*/
|
|
IPos subtract(IPos pos);
|
|
|
|
/**
|
|
* Returns a normalized vector of this block's position, calculated by:
|
|
*
|
|
* @return The normalized vector of this block position.
|
|
*/
|
|
IPos normalize();
|
|
|
|
double[] normalizeDouble();
|
|
|
|
/**
|
|
* Offsets the block by 1 block in the given direction and returns the resulting IPos object
|
|
*
|
|
*/
|
|
IPos offset(int direction);
|
|
|
|
/**
|
|
* Offsets the block by n blocks in the given direction and returns the resulting IPos object
|
|
*
|
|
*/
|
|
IPos offset(int direction, double n);
|
|
|
|
IPos crossProduct(double x, double y, double z);
|
|
|
|
IPos crossProduct(IPos pos);
|
|
|
|
IPos divide(double scalar);
|
|
|
|
long toLong();
|
|
|
|
IPos fromLong(long serialized);
|
|
|
|
/**
|
|
*
|
|
* @param pos The IPos object to calculate the distance to
|
|
* @return The distance between this IPos object and the other.
|
|
*/
|
|
double distanceTo(IPos pos);
|
|
|
|
double distanceTo(double x, double y, double z);
|
|
|
|
BlockPos getMCPos();
|
|
}
|