basic-components/src/main/java/universalelectricity/core/vector/VectorHelper.java
2022-10-16 16:08:02 +02:00

27 lines
1.2 KiB
Java

package universalelectricity.core.vector;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.core.block.IConnector;
public class VectorHelper {
public static final int[][] RELATIVE_MATRIX = new int[][]{{3, 2, 1, 0, 5, 4}, {4, 5, 0, 1, 2, 3}, {0, 1, 3, 2, 4, 5}, {0, 1, 2, 3, 5, 4}, {0, 1, 5, 4, 3, 2}, {0, 1, 4, 5, 2, 3}};
public static ForgeDirection getOrientationFromSide(ForgeDirection front, ForgeDirection side) {
return front != ForgeDirection.UNKNOWN && side != ForgeDirection.UNKNOWN?ForgeDirection.getOrientation(RELATIVE_MATRIX[front.ordinal()][side.ordinal()]):ForgeDirection.UNKNOWN;
}
public static TileEntity getConnectorFromSide(World world, Vector3 position, ForgeDirection side) {
TileEntity tileEntity = getTileEntityFromSide(world, position, side);
return tileEntity instanceof IConnector && ((IConnector)tileEntity).canConnect(getOrientationFromSide(side, ForgeDirection.NORTH))?tileEntity:null;
}
public static TileEntity getTileEntityFromSide(World world, Vector3 position, ForgeDirection side) {
return position.clone().modifyPositionFromSide(side).getTileEntity(world);
}
}