Package dev.ryanhcode.sable.companion
Interface SableCompanion
- All Known Implementing Classes:
DefaultSableCompanion
public interface SableCompanion
- Since:
- 1.0.0
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondoubledistanceSquaredWithSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 a, net.minecraft.world.phys.Vec3 b) Computes the distance squared between two points, taking into account sublevels and their plots/poses.doubledistanceSquaredWithSubLevels(net.minecraft.world.level.Level level, org.joml.Vector3dc a, org.joml.Vector3dc b) Computes the distance squared between two points, taking into account sublevels and their plots/poses.booleanfindIncludingSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 origin, boolean shouldCheckOrigin, @Nullable SubLevelAccess subLevel, BiFunction<@Nullable SubLevelAccess, net.minecraft.core.BlockPos, Boolean> converter) Checks positions in a level, including sublevels, for a true value from the converter.getAllIntersecting(net.minecraft.world.level.Level level, BoundingBox3dc bounds) Gets all sublevels that intersect with the given bounding boxnet.minecraft.world.level.Leveldefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.entity.Entity entity) Gets the sub-level that contains the given entity in its plot, or null if none dodefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.level.block.entity.BlockEntity blockEntity) Gets the sub-level that contains the given block-entity in its plot, or null if none do@Nullable SubLevelAccessgetContaining(net.minecraft.world.level.Level level, int chunkX, int chunkZ) Gets the sub-level that contains the given point in its plot, or null if none dodefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.level.Level level, net.minecraft.core.Position pos) Gets the sub-level that contains the given point in its plot, or null if none dodefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.level.Level level, net.minecraft.core.Vec3i pos) Gets the sub-level that contains the given point in its plot, or null if none dodefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.level.Level level, net.minecraft.world.level.ChunkPos chunkPos) Gets the sub-level that contains the given point in its plot, or null if none dodefault @Nullable SubLevelAccessgetContaining(net.minecraft.world.level.Level level, org.joml.Vector3dc pos) Gets the sub-level that contains the given point in its plot, or null if none dodefault @Nullable ClientSubLevelAccessgetContainingClient(net.minecraft.core.Position pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client leveldefault @Nullable ClientSubLevelAccessgetContainingClient(net.minecraft.core.Vec3i pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client leveldefault @Nullable ClientSubLevelAccessgetContainingClient(org.joml.Vector3dc pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client levelnet.minecraft.world.phys.Vec3getVelocity(net.minecraft.world.level.Level level, SubLevelAccess subLevel, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a sub-levelorg.joml.Vector3dgetVelocity(net.minecraft.world.level.Level level, SubLevelAccess subLevel, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a sub-levelnet.minecraft.world.phys.Vec3getVelocity(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a level, taking into account sub-level movement.org.joml.Vector3dgetVelocity(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a level, taking into account sub-level movement.net.minecraft.world.phys.Vec3getVelocityRelativeToAir(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a level relative to the air, taking into account sublevels and their plots/posesorg.joml.Vector3dgetVelocityRelativeToAir(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a level relative to the air, taking into account sublevels and their plots/posesdefault booleanisInPlotGrid(net.minecraft.world.entity.Entity entity) Checks if the plot grid contains the given entity.default booleanisInPlotGrid(net.minecraft.world.level.block.entity.BlockEntity blockEntity) Checks if the plot grid contains the given block entity.booleanisInPlotGrid(net.minecraft.world.level.Level level, int chunkX, int chunkZ) Checks if the plot grid contains the given chunk.default booleanisInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.core.Position pos) Checks if the plot grid contains the given point.default booleanisInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.core.Vec3i pos) Checks if the plot grid contains the given block.default booleanisInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.world.level.ChunkPos chunkPos) Checks if the plot grid contains the given chunk.default booleanisInPlotGrid(net.minecraft.world.level.Level level, org.joml.Vector3dc pos) Checks if the plot grid contains the given point.net.minecraft.world.phys.Vec3projectOutOfSubLevel(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Projects a point out of a sublevel, if it is within oneorg.joml.Vector3dprojectOutOfSubLevel(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Projects a point out of a sublevel, if it is within one<T> TrunIncludingSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 origin, boolean shouldCheckOrigin, @Nullable SubLevelAccess subLevel, BiFunction<@Nullable SubLevelAccess, net.minecraft.core.BlockPos, T> converter) Checks positions in a level, including sublevels, for a valid position matching the converter to a non-null value.
-
Field Details
-
INSTANCE
The companion instance.
-
-
Method Details
-
getAllIntersecting
@Contract(pure=true) Iterable<SubLevelAccess> getAllIntersecting(net.minecraft.world.level.Level level, BoundingBox3dc bounds) Gets all sublevels that intersect with the given bounding box- Parameters:
bounds- The bounding box to check.
NOTE: the bounds must NOT be modified during the iteration. this will cause undefined behavior!
-
getContaining
@Contract(pure=true) @Nullable @Nullable SubLevelAccess getContaining(net.minecraft.world.level.Level level, int chunkX, int chunkZ) Gets the sub-level that contains the given point in its plot, or null if none do- Parameters:
level- the level to checkchunkX- the global chunk X positionchunkZ- the global chunk Z position- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.level.Level level, net.minecraft.world.level.ChunkPos chunkPos) Gets the sub-level that contains the given point in its plot, or null if none do- Parameters:
level- the level to checkchunkPos- the global chunk position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.level.Level level, net.minecraft.core.Vec3i pos) Gets the sub-level that contains the given point in its plot, or null if none do- Parameters:
level- the level to checkpos- the global block position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.level.Level level, net.minecraft.core.Position pos) Gets the sub-level that contains the given point in its plot, or null if none do- Parameters:
level- the level to checkpos- the global position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.level.Level level, org.joml.Vector3dc pos) Gets the sub-level that contains the given point in its plot, or null if none do- Parameters:
level- the level to checkpos- the global position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.entity.Entity entity) Gets the sub-level that contains the given entity in its plot, or null if none do- Parameters:
entity- the entity to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContaining
@Contract(pure=true) @Nullable default @Nullable SubLevelAccess getContaining(net.minecraft.world.level.block.entity.BlockEntity blockEntity) Gets the sub-level that contains the given block-entity in its plot, or null if none do- Parameters:
blockEntity- the block-entity to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContainingClient
@Contract(pure=true) @Nullable default @Nullable ClientSubLevelAccess getContainingClient(net.minecraft.core.Position pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client level- Parameters:
pos- the global position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContainingClient
@Contract(pure=true) @Nullable default @Nullable ClientSubLevelAccess getContainingClient(org.joml.Vector3dc pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client level- Parameters:
pos- the global position to check- Returns:
- the sub-level that contains the point, or null if none do
-
getContainingClient
@Contract(pure=true) @Nullable default @Nullable ClientSubLevelAccess getContainingClient(net.minecraft.core.Vec3i pos) Gets the sub-level that contains the given point in its plot, or null if none do in the client level- Parameters:
pos- the global position to check- Returns:
- the sub-level that contains the point, or null if none do
-
projectOutOfSubLevel
@Contract(value="_,_,_->param3", mutates="param3") org.joml.Vector3d projectOutOfSubLevel(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Projects a point out of a sublevel, if it is within one- Parameters:
level- the level to checkpos- the point to project- Returns:
- the projected point
-
projectOutOfSubLevel
@Contract(value="_,_->new", pure=true) net.minecraft.world.phys.Vec3 projectOutOfSubLevel(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Projects a point out of a sublevel, if it is within one- Parameters:
level- the level to checkpos- the point to project- Returns:
- the projected point
-
runIncludingSubLevels
@Nullable @Contract(pure=true) <T> T runIncludingSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 origin, boolean shouldCheckOrigin, @Nullable @Nullable SubLevelAccess subLevel, BiFunction<@Nullable SubLevelAccess, net.minecraft.core.BlockPos, T> converter) Checks positions in a level, including sublevels, for a valid position matching the converter to a non-null value. Priority: World -> World, Sub-level -> World, World -> Sub-level- Type Parameters:
T- The type of the resulting value- Parameters:
level- The levelorigin- The origin to checkshouldCheckOrigin- Whether the origin should be checkedsubLevel- The data the origin is assumed to be inconverter- The function to convert a BlockPos to a non-null value- Returns:
- The resulting value from the converter, or null if nothing is found for all 3 check sets that are done
-
findIncludingSubLevels
@Contract(pure=true) boolean findIncludingSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 origin, boolean shouldCheckOrigin, @Nullable @Nullable SubLevelAccess subLevel, BiFunction<@Nullable SubLevelAccess, net.minecraft.core.BlockPos, Boolean> converter) Checks positions in a level, including sublevels, for a true value from the converter. Priority: World -> World, Sub-level -> World, World -> Sub-level- Parameters:
level- The levelorigin- The origin to checkshouldCheckOrigin- Whether the origin should be checkedsubLevel- The data the origin is assumed to be inconverter- The function to convert a BlockPos to a boolean value- Returns:
- True if any of the checks returned true, otherwise false
-
distanceSquaredWithSubLevels
@Contract(pure=true) double distanceSquaredWithSubLevels(net.minecraft.world.level.Level level, org.joml.Vector3dc a, org.joml.Vector3dc b) Computes the distance squared between two points, taking into account sublevels and their plots/poses.- Parameters:
level- the level to checka- the first pointb- the second point- Returns:
- the distance squared between the two points
-
distanceSquaredWithSubLevels
@Contract(pure=true) double distanceSquaredWithSubLevels(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 a, net.minecraft.world.phys.Vec3 b) Computes the distance squared between two points, taking into account sublevels and their plots/poses.- Parameters:
level- the level to checka- the first pointb- the second point- Returns:
- the distance squared between the two points
-
getVelocity
@Contract(value="_,_,_->param3", mutates="param3") org.joml.Vector3d getVelocity(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a level, taking into account sub-level movement.- Parameters:
level- the level to checkpos- the position of the pointdest- the vector to hold the result- Returns:
- the global velocity of the point stored in dest [m/s]
-
getVelocity
@Contract(value="_,_->new", pure=true) net.minecraft.world.phys.Vec3 getVelocity(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a level, taking into account sub-level movement.- Parameters:
level- the level to checkpos- the position of the point- Returns:
- the global velocity of the point stored in dest [m/s]
-
getVelocity
@Contract(value="_,_,_,_->param4", mutates="param4") org.joml.Vector3d getVelocity(net.minecraft.world.level.Level level, SubLevelAccess subLevel, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a sub-level- Parameters:
level- the level to checksubLevel- the sub-level the point is assumed to be inpos- the position of the pointdest- the vector to hold the result- Returns:
- the global velocity of the point stored in dest [m/s]
-
getVelocity
@Contract(value="_,_,_->new", pure=true) net.minecraft.world.phys.Vec3 getVelocity(net.minecraft.world.level.Level level, SubLevelAccess subLevel, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a sub-level- Parameters:
level- the level to checksubLevel- the sub-level the point is assumed to be inpos- the position of the point- Returns:
- the global velocity of the point stored in dest [m/s]
-
getVelocityRelativeToAir
@Contract(value="_,_,_->param3", mutates="param3") org.joml.Vector3d getVelocityRelativeToAir(net.minecraft.world.level.Level level, org.joml.Vector3dc pos, org.joml.Vector3d dest) Gets the global velocity of a point in a level relative to the air, taking into account sublevels and their plots/poses- Parameters:
level- the level to checkpos- the position of the pointdest- the vector to hold the result- Returns:
- the global velocity of the point stored in dest [m/s]
-
getVelocityRelativeToAir
@Contract(pure=true) net.minecraft.world.phys.Vec3 getVelocityRelativeToAir(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 pos) Gets the global velocity of a point in a level relative to the air, taking into account sublevels and their plots/poses- Parameters:
level- the level to checkpos- the position of the point- Returns:
- the global velocity of the point stored in dest [m/s]
-
isInPlotGrid
@Contract(pure=true) boolean isInPlotGrid(net.minecraft.world.level.Level level, int chunkX, int chunkZ) Checks if the plot grid contains the given chunk.- Parameters:
level- the level to checkchunkX- the global chunk X positionchunkZ- the global chunk Z position- Returns:
- If the chunk is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.world.level.ChunkPos chunkPos) Checks if the plot grid contains the given chunk.- Parameters:
level- the level to checkchunkPos- the global chunk position- Returns:
- If the chunk is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.core.Vec3i pos) Checks if the plot grid contains the given block.- Parameters:
level- the level to checkpos- the global position to check- Returns:
- If the block is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.level.Level level, net.minecraft.core.Position pos) Checks if the plot grid contains the given point.- Parameters:
level- the level to checkpos- the global position to check- Returns:
- If the point is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.level.Level level, org.joml.Vector3dc pos) Checks if the plot grid contains the given point.- Parameters:
level- the level to checkpos- the global position to check- Returns:
- If the point is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.entity.Entity entity) Checks if the plot grid contains the given entity.- Parameters:
entity- The entity to check- Returns:
- If the entity is inside the plot-grid
-
isInPlotGrid
@Contract(pure=true) default boolean isInPlotGrid(net.minecraft.world.level.block.entity.BlockEntity blockEntity) Checks if the plot grid contains the given block entity.- Parameters:
blockEntity- The block entity to check- Returns:
- If the block entity is inside the plot-grid
-
getClientLevel
@OverrideOnly net.minecraft.world.level.Level getClientLevel()- Returns:
- The client level instance for #getContainingClient instances
-