protected void updateLaser() { int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); double px = 0, py = 0, pz = 0; switch (ForgeDirection.values()[meta]) { case WEST: px = -0.3; break; case EAST: px = 0.3; break; case DOWN: py = -0.3; break; case UP: py = 0.3; break; case NORTH: pz = -0.3; break; case SOUTH: default: pz = 0.3; break; } Position head = new Position(xCoord + 0.5 + px, yCoord + 0.5 + py, zCoord + 0.5 + pz); Position tail = new Position( laserTarget.getXCoord() + 0.475 + (worldObj.rand.nextFloat() - 0.5) / 5F, laserTarget.getYCoord() + 9F / 16F, laserTarget.getZCoord() + 0.475 + (worldObj.rand.nextFloat() - 0.5) / 5F); laser.setPositions(head, tail); if (!laser.isVisible()) { laser.show(); } }